2009-05-05 2 views
1

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

Так что:

MyCustomLayer *layer = [MyCustomLayer layer]; 

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

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

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

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

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

ответ

2

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