如何将CALayer子类化,以便返回已设置样式属性的图层?

那样:

MyCustomLayer *layer = [MyCustomLayer layer];

会创建一个包含这些属性的图层;

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

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

这样我就可以设置它的框架并将其添加到树中。

但我想我的问题实际上可能就是,你如何对一个对象进行子类化,以便它在创建时已经设置了属性。可能的?

有帮助吗?

解决方案

在子类中覆盖-init(CALayer的指定初始值设定项),并在覆盖中设置这些属性。任何创建方法(包括-layer)都应该通过指定的初始化程序进行路由,这意味着即使是方便构造函数,也会发生额外的设置。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top