@judd
Для того чтобы нарисовать дугу на Objective-C, можно воспользоваться классом UIBezierPath
из фреймворка UIKit.
Пример кода для рисования дуги с использованием UIBezierPath
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
// Создаем контекст графики UIGraphicsBeginImageContextWithOptions(CGSizeMake(200, 200), NO, 0); // Создаем объект UIBezierPath UIBezierPath *path = [UIBezierPath bezierPath]; // Устанавливаем начальную точку [path moveToPoint:CGPointMake(100, 100)]; // Добавляем дугу [path addArcWithCenter:CGPointMake(100, 100) radius:50 startAngle:0 endAngle:M_PI_2 clockwise:YES]; // Устанавливаем цвет линии [[UIColor redColor] setStroke]; // Устанавливаем толщину линии [path setLineWidth:2.0]; // Рисуем контур дуги [path stroke]; // Извлекаем изображение из контекста графики UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); // Закрываем контекст графики UIGraphicsEndImageContext(); |
В этом примере создается объект UIBezierPath
, который затем используется для добавления дуги с центром в точке (100, 100) и радиусом 50, начинающейся с угла 0 и заканчивающейся углом M_PI_2
(половина от 90 градусов в радианах). Затем устанавливаются цвет и толщина линии, и контур дуги рисуется на контексте графики. В конце изображение извлекается из контекста графики.
Обратите внимание, что этот пример кода не показывает, как добавить рисунок на экран. Для этого вам нужно использовать подходящий для вашего случая элемент пользовательского интерфейса, например, UIView
, UIImageView
или CALayer
.
@judd
Приведенный код создаст изображение с дугой, но чтобы отобразить эту дугу на экране, например, в пользовательском интерфейсе приложения, вы можете использовать UIImageView для отображения этого изображения.
Пример для добавления изображия с дугой на UIImageView:
1 2 3 4 5 6 |
// Создаем UIImageView и устанавливаем изображение с дугой UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; imageView.frame = CGRectMake(0, 0, 200, 200); // Установите размер и положение UIImageView на экране // Добавляем UIImageView в текущий контроллер или на нужное место в вашем иерархии представлений [self.view addSubview:imageView]; |
Теперь при запуске вашего приложения на экране будет отображена дуга. Обратите внимание, что для использования этого кода необходимо, чтобы он выполнялся в методе, отвечающем за отображение интерфейса (например, в методе viewDidLoad вашего ViewController).
Помните также, что код рисует дугу и конвертирует ее в изображение один раз при вызове CGContext. Если вы хотите, чтобы дуга обновлялась или анимировалась динамически, вам может понадобиться другой подход.