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

How can I remove all annotations on my MkMapView that are not currently visible on iOS 8

在 iOS 上使用 Swift 1.2 在我的 MkMapView 上有一些可见的注释 8. 现在,如果用户在地图上滚动,我想删除所有注释,目前没有可见。

我该怎么做?

首先获取当前可见的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)
  }
}