Estoy dibujando un gráfico en un CALayer en su método delegado drawLayer:inContext:
.iOS: ¿Cómo soporto Retina Display con CGLayer?
Ahora quiero admitir Retina Display, ya que el gráfico se ve borroso en los últimos dispositivos.
Para las partes que dibujo directamente en el contexto gráfico pasado por el CALayer, puedo dibujar muy bien en alta resolución configurando la propiedad contentScale de CALayer de la siguiente manera.
if ([myLayer respondsToSelector:@selector(setContentsScale:)]) {
myLayer.contentsScale = [[UIScreen mainScreen] scale];
}
Pero las partes que utilizo CGLayer todavía se dibujan borrosas.
¿Cómo dibujo un CGLayer en alta resolución para que admita Retina Display?
Quiero usar CGLayer para dibujar las mismas formas de gráfico del gráfico repetidamente, así como para cortar las líneas del gráfico que exceden el borde de la capa.
me sale CGLayer por CGLayerCreateWithContex
con el contexto gráfico pasado de la CALayer, y se basan en su contexto usando funciones CG como CGContextFillPath
o CGContextAddLineToPoint
.
Necesito admitir iOS 4.xy iOS 3.1.3, tanto Retina como visualización heredada.
Gracias,
Kura
Parece que esta publicación puede ser relevante: http://stackoverflow.com/questions/3896968/how-do-i-adjust-a-quartz-2d-context-to-account-for-a-retina -display –
Duncan, gracias por su comentario, pero no ... He leído esta publicación antes, pero esto se trata de dibujar directamente en el contexto de UIView. CALayer tiene la misma 'escala 'de propiedad que UIView y funcionó como lo dije anteriormente. Mi problema está en dibujar en CGLayer. CGLayer no tiene la propiedad 'scale'. :( – Taka