gpt4 book ai didi

cocoa-touch - UIView和CALayer是什么关系

转载 作者:行者123 更新时间:2023-12-03 17:58:40 27 4
gpt4 key购买 nike

所以这是我的理解:有一个setNeedsDisplay在 UIView 和 CALayer 类中,UIView 是一个包含 CALayer 的复合类。但是 UIView 使用 drawRect:而 CALayer 使用 drawLayer:inContext:他们都使用setNeedsDisplay调用它。这是某种协议(protocol)还是什么?所以我猜在 UIView 的实现中的某个时刻,会创建一个 CALayer 并将该层的委托(delegate)设置为 UIView 类?这两个类之间究竟是什么关系?所以drawRect:在 UIView 中基本上是解析它的内容并调用 drawLayer:inContext:它的层?这是一种什么样的设计模式?我正试图了解这两个类是如何工作的,谢谢。

最佳答案

这是Apple的所有实现细节,所以我不确定。此外,不同的 View 类将与它们的层有不同的关系。

例如,UIImageViewexplicitly documented不打电话 drawRect: .这可能是因为设置图像实际上会更新图层的 contents直接属性,无需通过渲染方法。

也就是说,我想最基本的UIView行为是 setNeedsDisplay只需将调用转发到图层。那么,当drawLayer:inContext:在 View 上调用,它设置 UIGraphics上下文内容和调用drawRect: .

关于cocoa-touch - UIView和CALayer是什么关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6876948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com