Я использую этот код:
let annotationsInVisibleMapRect = self.mapView.annotations(in: mapView.visibleMapRect)
let count = annotationsInVisibleMapRect.reduce(0) { (count, object) -> Int in
if let cluster = object as? MKClusterAnnotation {
if let view = self.mapView.view(for: cluster), !view.isHidden {
return count + cluster.memberAnnotations.count
}
} else if let annotation = object as? MKCustomAnnotation {
if let view = self.mapView.view(for: annotation), !view.isHidden {
return count + 1
}
}
}
Но этот код работает неправильно. Иногда я вижу кластер на карте, но эта строка
, если let view = self.mapView.view (для: кластера),! View.isHidden ...
дает isHidden равно true . В результате я ошибаюсь в подсчете.