Как я могу создать подкласс CALayer для возврата предварительно стилизованного слоя? - PullRequest
1 голос
/ 05 мая 2009

Как вы создаете подкласс CALayer, чтобы возвращать слой с уже установленными свойствами стиля?

Так что:

MyCustomLayer *layer = [MyCustomLayer layer];

создаст слой с этими свойствами;

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

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

Так что я могу просто установить его рамку и добавить его в дерево.

Но я думаю, что мой вопрос на самом деле может быть таков: как подклассифицировать объект, чтобы у него уже были свойства, заданные при создании. Возможно ли это?

1 Ответ

2 голосов
/ 05 мая 2009

Просто переопределите -init (назначенный инициализатор для CALayer) в вашем подклассе и установите эти свойства в вашем переопределении. Любой метод создания, включая -layer, должен заканчиваться маршрутизацией через назначенный инициализатор, что означает, что ваши дополнительные настройки будут выполняться даже для вспомогательных конструкторов.

...