这是因为注释视图仅检测其边界内的触摸。由于您的标注视图超出了范围,因此子视图无法识别点击。您需要
pointInside:withEvent:在注释视图中覆盖该方法,以便您的标注实际上可以检测到触摸。
这是Objective-C中的一个示例:
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent*)event{ CGRect rect = self.bounds; BOOL isInside = CGRectContainsPoint(rect, point); if (!isInside) { for (UIView *view in self.subviews) { isInside = CGRectContainsPoint(view.frame, point); if (isInside) { break; } } } return isInside;}编辑 :
迅捷版:
override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool { let rect = self.bounds var isInside = CGRectContainsPoint(rect, point) if (!isInside) { for subview in subviews { isInside = CGRectContainsPoint(subview.frame, point) if (isInside) { break } } } println(isInside) return isInside;}


