Question

Comment sous-classez-vous CALayer afin de renvoyer un calque avec des propriétés de style déjà définies?

Pour que:

MyCustomLayer *layer = [MyCustomLayer layer];

créerait un calque avec ces propriétés;

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

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

Pour que je puisse simplement définir son cadre et l'ajouter à l'arbre.

Mais je suppose que ma question pourrait vraiment être simplement: comment sous-classer un objet de sorte qu'il ait des propriétés déjà définies lors de la création. Possible?

Était-ce utile?

La solution

Remplacez simplement -init (l'initialiseur désigné pour CALayer) dans votre sous-classe et définissez ces propriétés dans votre remplacement. Toute méthode de création, y compris -layer, doit aboutir au routage via l'initialiseur désigné, ce qui signifie que votre configuration supplémentaire se produira même pour les constructeurs de services pratiques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top