рисование двух кругов с использованием 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() } 
  • Как обрабатывать временные события в iOS?
  • Создайте UIImage, создав UIWebView на фоновом потоке - iPhone
  • Как удалить наблюдателя noitification в другом классе?
  • «Ваш бинар не оптимизирован для iPhone 5» (ITMS-90096) при отправке
  • Многоязычные изменения в файле .xib.
  • Очистить значок уведомления о начале после приращения
  • Как создать настраиваемое исключение в объекте c?
  • «Размеры одного или нескольких скриншотов неправильные». При загрузке скриншотов в iTunes Connect
  • сеанс обмена пользователями ios facebook с сафари
  • Как сосредоточить свое текущее местоположение в MKMapView?
  • Автоматическая высота UITextView динамически в ios
  • Interesting Posts

    Изменение размера номера в iOS

    Пример использования фильтра CIGaussianGradient для Core Image

    Не в сети Game Center iOS Достижения

    Отчет о сбоях с использованием Crashlytics Fabric не работает после обновлений

    Настройка производительности iOS: самый быстрый способ получить пиксельный цвет для больших изображений

    iOS 64bit @try {…} @catch {…} не работает

    Каков шаблон, который использует UIKit для определения правильного имени ножа для загрузки?

    Xcode Build и Run Succeeds, но Archive Fails

    Можно ли вызвать обработчик завершения блока из другой функции в iOS?

    Сравнение значений sign и unsigned в объектно-c

    Ошибка при отправке новой версии приложения AppStore для iOS

    Swift: Градиент вдоль пути безье (с использованием CALayers)

    Почтовый композитор сломан в iOS 8.1

    Отключить анимацию UICollectionView в reloadData

    Как отслеживать пользователей, работающих с органическими и платными объявлениями в моем приложении?

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