我是我的MKMapView,我有一个MKAnnotationView的标注,它在大多数情况下都工作得很好,看起来像这样:

标注中的图标是按钮。
问题是:
在本例中,被标注隐藏的地图上有一个注释,恰好在按钮的后面。当我点击这个按钮时,按钮后面的AnnotationView会得到触摸事件。当我点击一个没有注解的按钮时,这个按钮得到了触摸事件。
我使用How to debug who is eating my touches in UIKit?的公认答案找到了这一点
如何确保对callout中的按钮的触摸不会被呈现在callout后面的MKAnnotationView吃掉?
有非常多的代码,目前我不知道哪些代码是相关的显示给你。
发布于 2019-04-17 19:07:54
找到了解决方案(我没有找到使用hitTest的解决方案):
我现在使用我自己的UIView作为callout (请参阅问题下面的Robs注释作为开始)。这不会改变我在问题中描述的问题。
我注意到,当我点击callout视图中的按钮时,我没有遇到所描述的问题。
因此,我在所有非交互式标签和textViews上放置了一个不可见的自定义按钮。下面所示的infoButton除了捕捉taps什么也不做。它的大小与下面的infoStackView相同:

如果使用annotationView.detailCalloutAccessoryView,这个解决方案也应该有效,就像我提出这个问题时所做的那样。
https://stackoverflow.com/questions/53898709
复制相似问题