Есть ли какой-либо прямой метод или какое-либо предложение о том, как получить все аннотации из MKMapView?Можем ли мы получить все аннотации из MKMapView
Thnak вы, Мадан Моханы
Есть ли какой-либо прямой метод или какое-либо предложение о том, как получить все аннотации из MKMapView?Можем ли мы получить все аннотации из MKMapView
Thnak вы, Мадан Моханы
Вы можете получить доступ к аннотациям карты, используя его свойство annotations
. Получение просмотров для всех аннотаций может быть не всегда возможным, поскольку аннотации, которые в настоящее время не видны на карте, могут не иметь никаких связанных с ними представлений, но для произвольной аннотации вы можете попытаться получить представление с использованием метода -viewForAnnotation:
.
Так вот, как вы можете перебирать аннотации карты все и попытаться открыть свои взгляды:
for (id<MKAnnotation> annotation in mapView.annotations){
MKAnnotationView* anView = [mapView viewForAnnotation: annotation];
if (anView){
// Process annotation view
...
}
}
В быстром 3.
func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView) {
let selectedAnnotation = view.annotation
for annotation in mapView.annotations {
let viewI = mapView.view(for: annotation)
if !(viewI?.annotation is MKUserLocation){
if annotation.isEqual(selectedAnnotation) {
viewI?.image = UIImage(named: "focus.png")
showLifeEventView(anotation: view) //did select a point on Map.
}else{
viewI?.image = UIImage(named: "point.png")
}
}
}
}
Это было ужасно. , это спасло мое время. , –
Это создаст новый набор MKAnnotationViews - не вернуть существующих на вашей карте. –
^Нет, это не создаст новую аннотацию. Исходное решение верное. – n13
Aneil, я подозреваю, что вы запутываете метод 'MKMapView'' viewForAnnotation' (который корректно работает в примере Владимира) с помощью метода 'MKMapViewDelegate'' mapView: viewForAnnotation: '(который создает аннотации, но вы никогда не вызываете напрямую). – Rob