Suavizado de Core Graphics curvas

Estoy tratando de crear una barra de carga circular y quiero usar Core Graphics en lugar de enmascarar imágenes para crear el efecto. Sin embargo, no estoy obteniendo la fidelidad que esperaba: introduzca la descripción de la imagen aquí

No importa lo que he probado, los jaggies parecen bastante mal. El antialiasing ya está activado y ya he intentado convertir el "flatness" en .1 en el CGContextRef . La image es del simulador (Retina), se ve un poco mejor en un dispositivo, pero aún así no es genial.

Código de dibujo, dentro de una subclass de CALayer:

 -(void)drawInContext:(CGContextRef)ctx { CGPoint center = CGPointMake(self.frame.size.width / 2, self.frame.size.height / 2); CGFloat delta = toRadians(360 * percent); CGFloat innerRadius = 69.5; CGFloat outerRadius = innerRadius + 12; CGContextSetFillColorWithColor(ctx, [UIColor colorWithRed:99/256.0 green:183/256.0 blue:70/256.0 alpha:.5].CGColor); CGContextSetStrokeColorWithColor(ctx, [UIColor colorWithRed:99/256.0 green:183/256.0 blue:70/256.0 alpha:10.0].CGColor); CGContextSetLineWidth(ctx, 1); CGMutablePathRef path = CGPathCreateMutable(); CGPathAddRelativeArc(path, NULL, center.x, center.y, innerRadius, -(M_PI / 2), delta); CGPathAddRelativeArc(path, NULL, center.x, center.y, outerRadius, delta - (M_PI / 2), -delta); CGPathAddLineToPoint(path, NULL, center.x, center.y-innerRadius); CGContextAddPath(ctx, path); CGContextFillPath(ctx); CGContextAddPath(ctx, path); CGContextStrokePath(ctx); } 

¿Es esto lo que Core Graphics puede hacer o me estoy perdiendo algo?

Encontré mi problema específico. Desde que estaba creando un CALayer (para agregar como subcapa), the contentScale no se configuraba automáticamente en una pantalla Retina. Esto lo resuelve:

 percentLayer.contentsScale = [UIScreen mainScreen].scale; 

Gracias Rob, por empujarme en la dirección correcta.