2009-04-07 2 views
2

Ich las in der Dokumentation, dass eine der UIView ‚Schicht‘ Eigenschaft nur gelesen wird und dass Sie UIView derWie überschreiben Sie die + (ID) -Schicht von UIView; Klassenmethode?

+ (id)layer; 

Klasse Methode überschreiben muss die Ebene des Stylingeigenschaften zuzugreifen.

Gibt es Beispiele für das Überschreiben dieser Methode, um eine Ebene/Ansicht mit bereits angewendeten Styling-Eigenschaften zurückzugeben?

Antwort

9

Wenn Sie nur Eigenschaften festlegen möchten, wie Backgroundcolor, Opazität usw. auf dem Standard CALayer, die dem UIView zugewiesen wird, können Sie diese auf die UIView der Ebene jederzeit mit etwa wie folgt festgelegt:

view.layer.opacity = 0.0f; 

Sie müssten die Layer-Methode - (CALayer) nur überschreiben, wenn Sie eine benutzerdefinierte CALayer-Unterklasse zurückgeben möchten. Ich glaube, dass Apple auf dem iPhone empfiehlt, stattdessen die Klassenmethode layerClass zu überschreiben. Dadurch wird die CALayer-Unterklasse zurückgegeben, die beim Initialisieren der benutzerdefinierten Ansicht erstellt werden soll. Beispiel:

bewirkt, dass Ihre UIView-Unterklasse eine OpenGL-Ebene für ihre Unterstützung verwendet.

+0

Dank Brad, das ist sehr hilfreich. Also ist die Layer-Eigenschaft von UIView nicht schreibgeschützt? –

+1

Die Eigenschaft ist schreibgeschützt, dies bedeutet jedoch nur, dass Sie die Ebene nicht auf etwas anderes festlegen können. Die Ebene selbst ist änderbar, Sie haben also freien Zugriff auf ihre Eigenschaften und können sie in Animationen verwenden. –

+0

Ahhhh. Danke, dass du das geklärt hast. –