MKMapView 注释取消选择策略

Posted

技术标签:

【中文标题】MKMapView 注释取消选择策略【英文标题】:MKMapView Annotation Deselection Policy 【发布时间】:2019-07-23 15:52:20 【问题描述】:

MKMapView 在用户点击地图本身或点击其他注释时取消选择注释。然而,我也注意到,在平移或缩放操作期间有时可以取消选择注释。我很想了解管理这种行为的精确规则,并且想知道是否有人有任何想法。该文档没有帮助,我发现的唯一另一件事是post 来自关于MapBox 问题的讨论,该问题指出MapKit 根据速度进行部分取消选择,但从未完全取消选择 [原文如此]*。从某种意义上说,这很有帮助,因为它表明地图移动的速度起着一定的作用,但它也通过引入部分选择的概念在某种程度上使水域变得混乱——这不是我以前遇到过的。

【问题讨论】:

您能否发布一个示例项目,让我们可以运行和使用以查看这种自发取消选择的实际效果?我从来没有见过这个。当然,如果注释离开屏幕,它就会被破坏(或者至少它的视图被破坏),所以如果它失去其选定状态,我并不感到惊讶。一般来说,选择并不意味着持久;这只是查看标注(或其他)的一种方式。 【参考方案1】:

如果您对 Github 关于“基于速度的部分取消选择”的评论有疑问,您应该直接在 Github 上询问该评论的作者。

关于精确规则的文档,我知道没有这样的文档。 MKAnnotationView documentation 有点模糊,仅暗示用户切换:

此外,注释视图支持选择状态的概念,它决定了视图是未选中、选中还是选中并显示标准标注视图。用户通过与注释视图的交互在选择状态之间切换。

就我个人而言,我从未见过任何基于“速度”的取消选择。 “部分取消选择”的概念对我来说也没有意义。

如果 (a) 用户点击其他地方,则会发生取消选择;或者 (b) 如果注解视图不在屏幕上,随后出列并重新用于另一个注解。

【讨论】:

以上是关于MKMapView 注释取消选择策略的主要内容,如果未能解决你的问题,请参考以下文章

在启动时可靠地选择 MKMapView 中的注释(在 ios 6 和 ios 5.1 中)?

MKMapView 选择注解

如果在主页按钮位于右侧时以横向模式初始化,iOS MKMapView 将显示空白地图

如何向 MkMapView 自定义注释的副标题添加按钮?

MKMapView 和注释隐藏与缩放

从另一个视图中的 MKMapView 中删除注释