Tengo un UIView
personalizado que se dibuja utilizando su método -[drawRect:]
.Anti-aliasing raro en la vista personalizada
El problema es que el anti-aliasing actúa muy raro ya que las líneas negras, líneas horizontales o verticales, se dibujan muy borrosas.
Si desactivo el anti-aliasing con CGContextSetAllowsAntialiasing
, todo se dibuja como se esperaba.
Anti-Aliasing:
alt text http://dustlab.com/stuff/antialias.png
no anti-aliasing (que parece el resultado esperado con AA):
alt text http://dustlab.com/stuff/no_antialias.png
El ancho de línea es exactamente 1, y todas las coordenadas son valores enteros .
Lo mismo ocurre si dibujo un rectángulo usando CGContextStrokeRect
, pero no si dibujo exactamente el mismo CGRect
con UIRectStroke
.
Además de esto, Apple proporciona algunos consejos útiles y ejemplos de código en la sección "Hacer un dibujo exacto de píxeles" de la Guía de dibujo de cacao: http://developer.apple.com/mac/library/documentation/Cocoa/ Conceptual/CocoaDrawingGuide/Transforms/Transforms.html # // apple_ref/doc/uid/TP40003290-CH204-BCICIJAJ –
aquí es una forma sencilla de evitar sin ningún tipo de código http://www.techpaa.com/2012/06/avoiding -view-edge-antialiasing.html – ShivaPrasad
@jeeva 'UIViewEdgeAntialiasing' es solo para bordes de capas. La pregunta es sobre líneas dibujadas en Quartz. El dibujo de cuarzo no se ve afectado por 'UIViewEdgeAntialiasing'. –