Domanda

Come si esegue la sottoclasse di CALayer in modo da restituire un livello con proprietà di stile già impostate?

In modo che:

MyCustomLayer *layer = [MyCustomLayer layer];

creerebbe un livello con queste proprietà;

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

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

In modo che io possa semplicemente impostare la sua cornice e aggiungerla all'albero.

Ma immagino che la mia domanda potrebbe essere: come sottoclassare un oggetto in modo che abbia proprietà già impostate al momento della creazione. Possibile?

È stato utile?

Soluzione

Basta sovrascrivere -init (l'inizializzatore designato per CALayer) nella sottoclasse e impostare quelle proprietà nella sostituzione. Qualsiasi metodo di creazione, incluso -layer, dovrebbe finire il routing attraverso l'inizializzatore designato, il che significa che la tua configurazione aggiuntiva avverrà anche per i costruttori di convenienza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top