1

我的 mapView 上面有注释,有些注释上面有额外CALayer的。
问题是上面有这些层的注释不会传递触摸,而是视图检测到一个 CALayer 被点击了。

我将需要一个解决方案来使这些 CALayers “对触摸透明”,以便我可以分辨出哪个注释被点击了。

  • 有没有办法以某种方式使最顶层的 CALayers 对触摸透明?
  • 是否有另一种方法可以检测被挖掘的底层注释?
4

2 回答 2

1

尝试在您的 Layer 子类中覆盖这些

- (CALayer *)hitTest:(CGPoint)thePoint
{
    return nil;
}

或这个

- (BOOL)containsPoint:(CGPoint)thePoint
{
   return NO;
}

它可能会阻止图层捕捉触摸

于 2013-02-13T17:34:04.720 回答
1

阻塞的 CALayer 位于以前的 CALayer 之上,它只需要访问祖先 - theBlockingLayer.superlayer。通过检查祖先,我得到了我需要的一切

于 2013-02-14T09:43:09.113 回答