是的,您正确阅读了“图层的父视图”。我不确定使用的术语是否正确,但是我的意思是,我添加了一个图层作为视图的子图层。我想知道是否有任何方法可以从图层中获取视图。
这个问题已经很老了,但是访问CALayer的父视图很容易,因为:
layer.delegate
如果您查看调试器,则会看到该delegate属性中填充了UIView“图层” 容器,如果没有,则可以递归检查,直到CALayer直接将主视图托管在视图中。
来源:https://developer.apple.com/documentation/quartzcore/calayer/1410984-delegate
好的,所以如果您有一个常用的CALayer子类并且需要“调用视图”,那么在我看来该视图需要符合协议才能正常工作。
在这种情况下,您需要使用 KVC 存储对层内视图的引用:
[layer setValue:view forKey:MyViewKey];
Run Code Online (Sandbox Code Playgroud)
可以在哪里MyViewKey声明为CALayer-subclass 代码的一部分:
extern NSString * const MyViewKey;
Run Code Online (Sandbox Code Playgroud)
并将被定义为:
NSString * const MyViewKey = @"Hello Mum";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2430 次 |
| 最近记录: |