你如何覆盖UIView的+(id)层;类方法?

时间:2009-04-07 06:27:16

标签: iphone core-animation

我在文档中读到UIView的'layer'属性是只读的,你必须覆盖UIView的

+ (id)layer;

用于访问图层样式属性的类方法。

是否有任何覆盖此方法的示例,以返回已应用样式属性的图层/视图?

1 个答案:

答案 0 :(得分:9)

如果您只想在分配给UIView的默认CALayer上设置backgroundColor,opacity等属性,您可以随时使用以下内容在UIView的图层上设置这些属性:

view.layer.opacity = 0.0f;

如果要返回自定义CALayer子类,则唯一需要覆盖 - (CALayer)图层方法的时间。我相信在iPhone上,Apple建议您改写类方法layerClass。这将返回初始化自定义视图时要创建的CALayer子类。例如,

+ (Class) layerClass 
{
    return [CAEAGLLayer class];
}

导致您的UIView子类使用OpenGL层作为其支持。