На самом деле отступы слева и справа на рис. 17.15 одинаковы. Отступы от нижнего и верхнего краев также одинаковы. Я указал для них разные значения лишь для того, чтобы процесс создания отступов был более понятным и логичным. Если бы все значения отступов были одинаковы, то позже мы могли бы запутаться: а о каком из отступов сейчас идет речь?
Для такого изображения, как показано на рис. 17.15, краевые отступы создаются следующим образом:
UIEdgeInsets edgeInsets;
edgeInsets.left = 20.0f;
edgeInsets.top = 10.0f;
edgeInsets.right = 24.0f;
edgeInsets.bottom = 14.0f;
А теперь возвращаемся к учебному коду. Здесь мы попытаемся использовать адаптивное изображение, показанное на рис. 17.13, в реальном приложении. Мы создадим кнопку и поместим ее в центре единственного вида, находящегося в нашем контроллере вида. На кнопке будет написано Stretched Image on Button (Адаптивное изображение на кнопке). Кнопка будет иметь 200 точек в ширину и 44 точки в высоту. Вот наш код:
#import «ViewController.h»
@interface ViewController ()
@property (nonatomic, strong) UIButton *button;
@end
@implementation ViewController
— (void)viewDidLoad{
[super viewDidLoad];
/* Инстанцируем кнопку */
self.button = [UIButton buttonWithType: UIButtonTypeCustom];
[self.button setFrame: CGRectMake(0.0f, 0.0f, 200.0f, 44.0f)];
/* Задаем надпись для кнопки */
[self.button setTitle:@"Stretched Image on Button"
forState: UIControlStateNormal];
/* Корректируем шрифт для текста */
self.button.titleLabel.font = [UIFont systemFontOfSize:15.0f];
/* Создаем адаптивное изображение */
UIImage *image = [UIImage imageNamed:@"Button"];
UIEdgeInsets edgeInsets;
edgeInsets.left = 14.0f;
edgeInsets.top = 0.0f;
edgeInsets.right = 14.0f;
edgeInsets.bottom = 0.0f;
image = [image resizableImageWithCapInsets: edgeInsets];
/* Задаем фоновое изображение для кнопки */
[self.button setBackgroundImage: image forState: UIControlStateNormal];
[self.view addSubview: self.button];
self.button.center = self.view.center;
}
@end
Теперь, запустив приложение, вы увидите примерно такую картинку, как на рис. 17.16.
Рис. 17.16. На экране находится кнопка с адаптивным фоновым изображением
Раздел 17.4.
Требуется просто рисовать линии в графическом контексте.
Получите описатель для вашего графического контекста, а потом пользуйтесь функциями CGContextMoveToPoint и CGContextAddLineToPoint для отрисовки линии.
Когда мы говорим о рисовании фигур в iOS или OS X, мы подразумеваем
Линии нужно рисовать, пользуясь путями. Укажите начальную и конечную точки пути, а потом прикажите Core Graphics заполнить этот путь за вас. Core Graphics считает, что вы создали линию вдоль этого пути, и нарисует его указанным вами цветом (см. раздел 17.3).
Более подробно мы рассмотрим пути в дальнейшем (в разделе 17.7), а пока сосредоточимся на том, как создавать с помощью путей прямые линии. Для этого нужно выполнить следующие шаги.
1. Выбрать цвет в вашем графическом контексте (см. раздел 17.3).
2. Получить описатель графического контекста — это делается с помощью функции UIGraphicsGetCurrentContext.
3. Задать начальную точку для линии, воспользовавшись процедурой CGContextMoveToPoint.