Pregunta

¿Cómo subclase CALayer para que devuelva una capa con las propiedades de estilo ya establecidas?

De modo que:

MyCustomLayer *layer = [MyCustomLayer layer];

crearía una capa con estas propiedades;

layer.backgroundColor = sweetBackgroundColor.CGColor;
layer.borderColor = sweetBorderColor.CGColor;

layer.borderWidth = 2.0;
layer.cornerRadius = 8.0;

Para que pueda establecer su marco y agregarlo al árbol.

Pero supongo que mi pregunta realmente podría ser simplemente, ¿cómo subclasificar un objeto para que tenga propiedades ya establecidas en la creación? ¿Posible?

¿Fue útil?

Solución

Simplemente anule -init (el inicializador designado para CALayer) en su subclase, y establezca esas propiedades en su anulación. Cualquier método de creación, incluido -layer, debe terminar enrutando a través del inicializador designado, lo que significa que su configuración adicional se realizará incluso para constructores de conveniencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top