рисование двух кругов с использованием Quartz CGContextFillEllipseInRect

Я пытаюсь сделать два круга один внутри другого, как изображение ниже.

введите описание изображения здесь

Мне удалось красиво нарисовать один круг (внешний), но я не уверен, как добавить второй круг сверху и как его центрировать.

- (void)drawRect:(CGRect)rect { CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(context, 4.0); CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor); // UIColor *theFillColor = UIColorFromRGB(0x6c83a6); CGContextSetFillColor(context, CGColorGetComponents(theFillColor.CGColor)); CGRect rectangle = CGRectMake(5.0,5.0,rect.size.width-10.0,rect.size.height-10.0); CGContextAddEllipseInRect(context, rectangle); CGContextStrokePath(context); CGContextFillEllipseInRect(context, rectangle); UIGraphicsEndImageContext(); // // INSIDE ? // } 

3 Solutions collect form web for “рисование двух кругов с использованием Quartz CGContextFillEllipseInRect”

 CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(context, 4.0); CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor); UIColor *theFillColor = UIColorFromRGB(0x6c83a6); CGContextSetFillColorWithColor(context, theFillColor.CGColor); CGRect rectangle = CGRectMake(5.0,5.0,rect.size.width-10.0,rect.size.height-10.0); CGContextBeginPath(context); CGContextAddEllipseInRect(context, rectangle); CGContextDrawPath(context, kCGPathFillStroke); // Or kCGPathFill CGRect smallRect = CGRectInset(rectangle, 40, 40); // change 40 with the desired value // You may change the fill and stroke here before drawing the circle CGContextBeginPath(context); CGContextAddEllipseInRect(context, smallRect); CGContextDrawPath(context, kCGPathFillStroke); // Or kCGPathFill UIGraphicsEndImageContext(); 

/ * Аналогично предыдущему решению, но несколько проще. радиус и начальный угол, определенные для ясности. * /

 #define PI 3.14285714285714 float radius1 = 80; float radius2 = 30; float startAngle = 0; float endAngle = endAngle = PI*2; CGPoint position = CGPointMake(100,100); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(context, 4.0); CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor); UIColor *theFillColor = UIColorFromRGB(0x6c83a6); CGContextSetFillColorWithColor(context, theFillColor.CGColor); CGContextBeginPath(context); CGContextAddArc(ctx, position.x, position.y, radius1, startAngle, endAngle, 1); CGContextDrawPath(context, kCGPathFillStroke); // Or kCGPathFill // You may change the fill and stroke here before drawing the circle CGContextBeginPath(context); CGContextAddArc(ctx, position.x, position.y, radius2, startAngle, endAngle, 1); CGContextDrawPath(context, kCGPathFillStroke); // Or kCGPathFill UIGraphicsEndImageContext(); 

стриж

 func drawRect(rect: CGRect) { let context: CGContextRef = UIGraphicsGetCurrentContext()! CGContextSetLineWidth(context, 4.0) CGContextSetStrokeColorWithColor(context, UIColor(hue: 0, saturation: 0, brightness: 94, alpha: 242).CGColor) let theFillColor: UIColor = UIColor(hue: 0, saturation: 100, brightness: 80, alpha: 204) CGContextSetFillColorWithColor(context, theFillColor.CGColor) let rectangle: CGRect = CGRectMake(5.0, 5.0, rect.size.width-10.0, rect.size.height-10.0) CGContextBeginPath(context) CGContextAddEllipseInRect(context, rectangle) CGContextDrawPath(context, CGPathDrawingMode.FillStroke) let smallRect: CGRect = CGRectInset(rectangle, 40, 40) CGContextBeginPath(context) CGContextAddEllipseInRect(context, smallRect) CGContextDrawPath(context, CGPathDrawingMode.FillStroke) UIGraphicsEndImageContext() } 
  • Можно ли всегда включать и сканировать CoreBluetooth?
  • Могу ли я получить доступ к App Store из iOS Simulator?
  • UISegmentedControl текст с несколькими строками?
  • Сохранять отображение, когда датчик приближения закрыт
  • Запись экрана iphone во время работы приложения на xcode
  • Принудительный iOS ViewController для поворота на ориентацию устройства после разблокировки программной блокировки вращения
  • Изменение размера изображения с помощью пользовательского сенсорного ввода
  • странное поведение объектива C
  • iPhone - создание изображения на экране
  • Полнотекстовая подстрока Поиск в iOS
  • Проблема при отправке параметра POST из iOS
  • Interesting Posts

    Невозможно программно создать UIViewController в Swift

    Как программно изменить шрифт метки?

    Ошибка приложения при нажатии кнопки в подпункте

    UIView alpha = 0 вызывает отбрасывание касаний к виду ниже

    Сбой приложения iOS при запуске из-за профиля распространения? (libgdx + robovm)

    Попытка JIT-метода компиляции (вызов делегата-оболочки) – System.Net.HttpWebRequest

    Обновление только локального хранилища данных Parse

    Недопустимые вызовы делегатов UITableView и dataSource

    Как создать файл vCard / vcf для использования в общем листе?

    Почему некоторые строки показаны с кавычками в массиве, а некоторые без?

    UICollectionView показывает только одну ячейку – которая изменяется при прокрутке представления

    Как центрировать горизонтально две метки?

    Автоматический макет и размерForChildContentContainer

    Ошибка подтверждения в –

    Пользовательские шрифты в iOS с холстом Phonegap

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.