【问题标题】:iOS MapKit: tap in callout touches annotationView that is rendered under the calloutiOS MapKit:在标注中点击触摸在标注下呈现的annotationView
【发布时间】:2018-12-22 19:29:51
【问题描述】:

我是我的MKMapView,我有一个MKAnnotationView 的标注,大部分时间都可以正常工作,看起来像这样:

标注中的图标是按钮。

问题:

在这种情况下,被标注隐藏,地图上有一个注释,正好在一个按钮的后面。 当我点击这个按钮时,按钮后面的 AnnotationView 会获得触摸事件。 当我点击一个后面没有注释的按钮时,该按钮会获得触摸事件。

我使用How to debug who is eating my touches in UIKit? 接受的答案发现了这一点

如何确保在标注中的按钮触摸不会被标注后面呈现的MKAnnotationView 吃掉?

代码非常多,目前我不知道要向您展示哪些代码。

【问题讨论】:

标签: ios swift mapkit mouseevent mapkitannotation


【解决方案1】:

找到了解决方案(我没有找到使用hitTest的解决方案):

我现在使用我自己的 UIView 作为标注(请参阅问题下方的 Rob 评论作为开始)。这不会改变我在问题中描述的问题。

我注意到当我点击标注视图中的按钮时,我没有遇到所描述的问题。

所以我在所有非交互式标签和文本视图上放置了一个不可见的自定义按钮。下面显示的 infoButton 除了捕捉点击之外什么都不做。它与下面的 infoStackView 大小相同:

如果使用annotationView.detailCalloutAccessoryView,这个解决方案也应该可以工作,就像我提出问题时所做的那样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多