更改UIView的图层类

时间:2012-05-02 06:28:04

标签: iphone objective-c uiview

根据Apple UIView编程指南,您只能使用layerClass方法更改uiview的CA层,您必须覆盖该方法以在视图的初始化期间返回不同的类,并且这是可以做到的唯一方法:

  

创建视图后,无法更改与视图关联的图层类型。因此,每个视图都使用layerClass类方法来指定其图层对象的类。

但是,我已经看过直接将视图分配给另一个创建图层的应用教程,我总是认为这实际上是用另一个图层替换图层并且工作正常。

这两种方法是否会产生相同的结果?使用第二种方法不好吗?

2 个答案:

答案 0 :(得分:3)

layer的{​​{1}}属性是只读的。你不能分配给它。我怀疑你正在看Mac OS X教程,而不是iOS教程。在Mac OS X上,您使用UIView,它具有读写NSView属性。

答案 1 :(得分:0)

UIView类的类型为var

class var layerClass: Swift.AnyClass { get }

在视图中覆盖此var以更改iOS中的图层类:

class MyView: UIView {
    override class var layerClass: Swift.AnyClass {
        return CATiledLayer.self
}