2011-09-23 14 views
5

Intento entender Quartz y obtener el contexto que tiene para dibujar. Si tengo una función donde creo un contexto, pero luego llamo a otra función para otro dibujo al mismo contexto, ¿necesito pasar el contexto del primer método al siguiente? ¿O puedo usar UIGraphicsGetCurrentContext() para cualquier método CG que requiera un contexto ya que todavía estoy dibujando en el mismo contexto?Comprensión de UIGraphicsGetCurrentContext()

Respuesta

13

El docs for UIGraphicsGetCurrentContext() dicen:

El contexto gráfico actual es nulo por defecto. Antes de llamar a su método drawRect , los objetos de vista insertan un contexto válido en la pila, , lo que lo hace actual. Sin embargo, si no está utilizando un objeto UIView para realizar su dibujo , debe insertar manualmente un contexto válido en la pila utilizando la función UIGraphicsPushContext.

Así que después de llamar a UIGraphicsPushContext() con el contexto que ha creado, sus otros métodos pueden acceder a ese contexto con UIGraphicsGetCurrentContext(). Si llama a UIGraphicsGetCurrentContext() fuera de drawRect: y no ha establecido un contexto explícitamente con UIGraphicsPushContext(), el contexto de gráficos actual no está definido, y ciertamente no es seguro de usar.

+0

aquí hay un enlace que funciona: https://developer.apple.com/documentation/uikit/1623918-uigraphicsgetcurrentcontext – DeveloperACE