检测对子层元素的触摸

Posted

技术标签:

【中文标题】检测对子层元素的触摸【英文标题】:Detect touches on sublayer elements 【发布时间】:2013-03-20 13:56:00 【问题描述】:

我将 MyCustomView 视图作为 UIControl 类的子类。 我在我的视图上画这样的东西:

   CAShapeLayer *line = [CAShapeLayer layer];
   ....
   [self.layer addSublayer:line];

是否无论如何都要检测“线”上的触摸并做一些工作?例如移动“线”。

【问题讨论】:

检查这里:***.com/questions/3469211/… 【参考方案1】:

您可以尝试将手势识别器添加到您的 UIView 中,然后调用

  - (CALayer *)hitTest:(CGPoint)thePoint

在您的视图层上查找您点击的层,例如;

   CALayer* layerThatWasTapped = [line.layer hitTest:[gestureRecognizer locationInView:line]];

【讨论】:

以上是关于检测对子层元素的触摸的主要内容,如果未能解决你的问题,请参考以下文章

检测 UIWebView 上的触摸,但忽略滑动或触摸交互式元素(链接或点击)

检测旋转 CAShapeLayer 上的触摸

使用 PointerEvents 在同一目标上检测两个手指触摸

XSLT 对子子元素进行排序

使用 XSLT 对子元素进行排序

如何通过 -addSublayer 添加 UI 元素:响应触摸事件?