如何将CALayer子类化为返回预先设置的图层?
-
05-07-2019 - |
题
如何将CALayer子类化,以便返回已设置样式属性的图层?
那样:
MyCustomLayer *layer = [MyCustomLayer layer];
会创建一个包含这些属性的图层;
layer.backgroundColor = sweetBackgroundColor.CGColor;
layer.borderColor = sweetBorderColor.CGColor;
layer.borderWidth = 2.0;
layer.cornerRadius = 8.0;
这样我就可以设置它的框架并将其添加到树中。
但我想我的问题实际上可能就是,你如何对一个对象进行子类化,以便它在创建时已经设置了属性。可能的?
解决方案
在子类中覆盖-init(CALayer的指定初始值设定项),并在覆盖中设置这些属性。任何创建方法(包括-layer)都应该通过指定的初始化程序进行路由,这意味着即使是方便构造函数,也会发生额外的设置。
不隶属于 StackOverflow