2010-03-30 10 views

risposta

25

Quando si fornisce contenuto personalizzato con quarzo da visualizzare all'interno di un CALayer, è possibile ignorare -drawInContext: e fare il disegno personalizzato lì. È simile a -drawRect: per un UIView o NSView. In alternativa, è possibile impostare un'altra classe come delegato del CALayer e implementare -drawLayer:inContext: per fornire un contenuto personalizzato a un CALayer standard.

Non eseguire l'override di -renderInContext:, ma è possibile richiamarlo su un livello per renderlo e tutti i relativi sottolivelli in un particolare contesto di grafica principale. Nota che questo non renderà determinati tipi di layer (come quelli con contenuto OpenGL). Inoltre non si comporta come ci si aspetterebbe quando si esegue il rendering in un contesto PDF, in cui i livelli verranno visualizzati come rettangoli bitmap invece di elementi vettoriali puri. Per ovviare a questo problema, è possibile controllare lo Core Plot framework's CPTLayer implementation, in cui ignoriamo il normale processo di rendering per preservare i vettori in un PDF generato dalla sottoclasse CALayer.

+0

Core Plot spostato in [github] (https://github.com/core-plot) – lazi74

Problemi correlati