更改 UIView 的图层类



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

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

但是,我见过将视图的层直接分配给另一个创建的层的应用程序教程,我一直认为这实质上是用另一个层类替换该层并且工作正常。

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

UIViewlayer 属性是只读的。 您无法分配给它。 我怀疑您正在查看Mac OS X教程,而不是iOS教程。 在 Mac OS X 上,您可以使用具有读写layer属性的 NSView

UIView 类有一个类型 var

class var layerClass: Swift.AnyClass { get }

覆盖视图中的此变量以更改 iOS 中的图层类:

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

最新更新