gpt4 book ai didi

ios - CALayer 可见区域改变时通知?

转载 作者:行者123 更新时间:2023-11-28 22:39:50 24 4
gpt4 key购买 nike

我有一个 CALayer,我只为其可见区域提供内容(有点类似于 CATiledLayer)。问题是当 CALayer 的可见区域发生变化以便调用 displayLayer 时,似乎没有办法接收通知。我目前子类化并 Hook setPosition、setBounds 和 setTransform,但这并没有捕捉到 superview/layer 发生变化的情况(例如,UIScrollView 通过改变 ScrollView origin 来滚动)。我只需要 Hook 父 View 并在整个代码中散布 setNeedsDisplay。

有没有更好的办法?

最佳答案

当前可见的矩形是[CALayer visibleRect]。这是由 ScrollView (层)设置的,也是您在 ScrollView 中绘制的基础。

您可能想要覆盖 -needsDisplayOnBoundsChange 以返回 YES。这通常是您处理您所描述的大部分内容的方式。

如果你想要位置之类的东西强制重绘(这不常见,但可能),那么你可以覆盖 +needsDisplayForKey: 以返回 YES 任何键更改你想强制重绘。

如果您想确保只绘制您需要绘制的内容,那么您应该在绘制代码期间使用 CGContextGetClipBoundingBox() 检查您的剪辑框。

关于ios - CALayer 可见区域改变时通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14862046/

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