gpt4 book ai didi

objective-c - 防止 CALayer 子层缩放

转载 作者:行者123 更新时间:2023-12-03 16:33:58 25 4
gpt4 key购买 nike

我在图层托管 View 中有一些 CALayers。这些层中的每一层都有附加层来容纳 (1) 关闭按钮和 (2) 调整大小 handle 。这些附加的“控制”层作为子层添加到父层中。

目前,当我缩放这些图层所在的工作区时,所有内容都会缩放 - 包括这些控制图层。但是,我想防止这些控制层缩放。

有没有一种方法可以覆盖将缩放变换应用于所有子层的行为,而不必覆盖每个控制层的drawInContext:方法(大概反转任何现有的缩放变换 - 假设这是可能的)并且不需要每次缩放时都必须手动向每个控制层发送 setNeedsDisplay: 吗?

我发现这个帖子讨论了类似的事情,但讨论朝着 CATiledLayers 的方向发展,这不是我在这里寻找的。

Redrawing CALayer subclass when super layer is scaled

此外,这篇文章提出了一个有些相关的问题,但答案不适用于我的情况,因为我无法覆盖控件 - 它们必须是图层层次结构的一部分。

How do I keep a CALayer , sublayer of a CATiledLayer , from changing it's scale after a zoom?

最佳答案

我最终通过重写自定义 CALayers 的 layoutSublayers 方法、获取图层层次结构的累积比例变换并将逆变换应用于控制子图层来解决了这个问题。

关于objective-c - 防止 CALayer 子层缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3500225/

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