是否有用于 CALayer 命中测试的 MouseChildren?

发布于 2024-10-22 03:21:28 字数 270 浏览 1 评论 0原文

嘿。 我有一个主层,其中包含 4 个圆形层,每个圆圈内有一个文本层:

主层 -> (4)圆层-> (1)文本层。

我正在主层上执行命中测试,我想收到被单击的圆圈。 它工作正常,但是当我点击文本区域时,我返回文本层而不是圆形层。

在 AS3 中,

 MouseChildren = true/false.

我如何在 Objective C 中获得此功能?

谢谢沙尼

Hey.
i have a main layer that contains a 4 circle layers and inside each circle there is a text layer :

main layer -> (4)circle layer -> (1)textLayer.

I am performing hit test on the main layer and i want to receive the circle that was clicked.
It works fine, but when I tap in the text area i get back the text layer and not the circle layer.

In AS3 you have

 MouseChildren = true/false.

How can i get this functionality in objective c?

thanks

shani

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最初的梦 2024-10-29 03:21:28

只需使用 superlayer 属性,如下所示:

if([theLayer isKindOfClass:[CATextLayer class]])
    theLayer = theLayer.superlayer;

换句话说,如果您已经获得了圆形图层,则 theLayer 不会改变;如果它是文本子图层之一,则 theLayer 将更改为指向包含该子图层的图层。

Just use the superlayer property, like this:

if([theLayer isKindOfClass:[CATextLayer class]])
    theLayer = theLayer.superlayer;

In other words, if you've already got the circle layer, theLayer doesn't change; if it's one of the text sublayers, theLayer changes to point to the layer that contains that sublayer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文