[英]How do I have my UIView use my custom CALayer as its backing layer?
我按照Apple的文档中的建议重写UIView的layerClass方法,如下所示:
+ (Class)layerClass {
return [ViewLayerBase class];
}
在我的viewLayerBase自定义类中,我有一个像这样实现的init方法:
- (id)initWithRect:(CGRect)rect {
if ((self = [super init])) {
NSLog(@"I got called");
}
return self;
}
我的UIView子类显然没有调用此方法。 鉴于UIView的图层属性是只读的,我不能做myView.layer = [ViewLayerBase alloc] initWithRect...
如何让UIView实例化我的自定义CALayer子类?
您正在这样做(向您的自定义UIView类添加一个layerClass
类方法。)
问题是你的init方法。 对于CALayer,指定的init方法是init,而不是initWithRect。 尝试将代码移动到-init
。 这应该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.