gpt4 book ai didi

objective-c - 带子层的 CALayer hitTest

转载 作者:搜寻专家 更新时间:2023-10-30 20:03:02 26 4
gpt4 key购买 nike

我有一个由根层和 2 个 CALayer 子类组成的结构。这两层也包含一层。

这里有一个方案:

ROOT LAYER 
|
|------- LAYER A
| |---------BG
|
|
|--------LAYER B
|---------BG

如果我在 ROOT LAYER 上调用 hitTest 方法,它会将最内层返回到层次结构中。因此,如果用户点击 LAYER A,我将获得 LAYER ABG

//In this example hitResult will contains the BG of LAYER A or the BG of LAYER B
CALayer *hitResult = [rootLayer hitTest:point)];

如何停止响应链并从发送到 ROOT LAYER 的 HitTest 中直接获取 LAYER ALAYER B

最佳答案

如果这些层是您自己的 CALayer 子类,那么您可以覆盖 hitTest:containsPoint: 以在那里执行您自己的逻辑。

覆盖 containsPoint: 并在背景层中返回 NO 将阻止它们从其超层 hitTest: 实现中返回。

或者,您可以覆盖 A 层和 B 层中的 hitTest:,如果它们包含该点,则返回 self

关于objective-c - 带子层的 CALayer hitTest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940089/

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