2

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

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

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

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

4

2 回答 2

3

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

于 2012-05-02T06:55:53.377 回答
3

UIView 类有一个类型 var

class var layerClass: Swift.AnyClass { get }

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

class MyView: UIView {
    override class var layerClass: Swift.AnyClass {
        return CATiledLayer.self
}
于 2018-03-12T06:30:07.547 回答