2010-03-30 5 views

Antwort

25

Wenn Sie benutzerdefinierte, von Quartz gezeichnete Inhalte bereitstellen, die in einem CALayer angezeigt werden, können Sie -drawInContext: überschreiben und dort Ihre benutzerdefinierte Zeichnung erstellen. Dies ist vergleichbar mit -drawRect: für eine UIView oder NSView. Alternativ können Sie eine andere Klasse als Delegat von CALayer festlegen und -drawLayer:inContext: implementieren, um benutzerdefinierten Inhalt für einen Standard-CALayer bereitzustellen.

Sie überschreiben nicht -renderInContext:, aber Sie können dies stattdessen auf einem Layer aufrufen, um es und alle seine Sublayer in einen bestimmten Core Graphics-Kontext zu rendern. Beachten Sie, dass dies bestimmte Arten von Layern (wie die mit OpenGL-Inhalt) nicht darstellt. Es verhält sich auch nicht so, wie Sie es erwarten würden, wenn es in einen PDF-Kontext gerendert wird, bei dem die Layer als Bitmap-Rechtecke anstelle von reinen Vektorelementen ausgegeben werden. Um dies zu umgehen, sollten Sie sich die Core Plot framework's CPTLayer implementation ansehen, in der wir den normalen Rendering-Prozess umgehen, um die Vektoren in einer PDF zu erhalten, die von unserer CALayer-Unterklasse generiert wurde.

+0

Kernplot nach [github] verschoben (https://github.com/core-plot) – lazi74

Verwandte Themen