ios - 如何删除我的 MkMapView 上当前在 iOS 8 上不可见的所有注释

标签 ios swift annotations mkmapview

在 iOS 8 上使用 Swift 1.2 在我的 MkMapView 上显示一些注释。现在如果用户在 map 上滚动,我想删除所有当前不可见的注释。

我该怎么做?

最佳答案

首先获取当前可见的mapRect:

let visRect = mapView.visibleMapRect

现在您可以获得该矩形内的所有注释:

let inRectAnnotations = mapView.annotationsInMapRect(visRect)

最后一步是遍历所有注释并检查你的注释是否在这些注释中

for anno : MKAnnotation in mapView.annotations {
  if (inRectAnnotations.contains(anno)) {
    //do what you want to do with the annotation (hide/remove)
  }
}

关于ios - 如何删除我的 MkMapView 上当前在 iOS 8 上不可见的所有注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32071545/

相关文章:

ios - 如何从 iOS 8 中的 SOAP 获取数据。

iphone - iOS 通用应用程序 - 常见陷阱

uitableview - fatal error : unexpectedly found nil while unwrapping an Optional value on table view cell

ios - 为什么/什么时候我们必须调用 super.ViewDidLoad?

ios - 在 cellForRowAtIndexPath 中自动调用的目标

java - 类型嵌套时 TYPE_USE 注释丢失,通用接口(interface)

ios - 为什么我的 segue 在重写的 sendEvent 上崩溃?

ios - 当同时按下两个按钮时如何执行操作?

Java 14 语言规范注释元素说明 - 可能是错别字?

java - 将 Java XML 和持久性注释放在同一个 bean 上是否有效?