CGContextDrawImage en Retina dibuja la image pixelada?

Necesito dibujar imágenes en un CALayer porque necesito realizar varios efectos, animaciones y filters. Cuando hago dibujo simple en CGContext, no importa lo que hago, siempre se dibuja pixelado … ¿Cuál es la forma correcta de dibujar un context en retina?

Esto es lo que estoy haciendo ahora:

CGImageRef plateImage = [[UIImage imageNamed:@"someImage"] CGImage]; CGFloat width = CGImageGetWidth(plateImage), height = CGImageGetHeight(plateImage); CGFloat scale = [[UIScreen mainScreen] scale]; NSLog(@"Scale: %f\nWidth: %f\nHeight: %f", scale, width, height); CGContextTranslateCTM(_context, 0, height / scale); CGContextScaleCTM(_context, 1.0, -1.0); CGContextDrawImage(_context, CGRectMake(0, 0, width / scale, height / scale), plateImage); 

Debe establecer la escala de contenido de la capa de manera adecuada.

 myLayer.contentsScale = [UIScreen mainScreen].scale 

Tuve el mismo problema, pero la solución no funcionó.

UIGraphicsBeginImageContext() resultó ser la causa de mi problema. Estoy publicando mi solución aquí para futuros usuarios con el mismo problema.

Desde iOS 4.0 debe usar:

 UIGraphicsBeginImageContextWithOptions(size, NO, 0.0); 

en lugar de

 UIGraphicsBeginImageContext(size); 

Si no quieres imágenes pixeladas.