У меня есть mapView, заполненный маркерами с использованием MKAnnotations. Я могу получить массив аннотаций в порядке. Однако, как я могу определить индекс маркера, который используется? Скажем, я постучал маркером, и MKAnnotation появился. Как получить этот экземпляр аннотации?Как получить доступ к определенному индексу MKAnnotation
ViewDidAppear код:
for (var i=0; i<latArray.count; i++) {
let individualAnnotation = Annotations(title: addressArray[i],
coordinate: CLLocationCoordinate2D(latitude: latArray[i], longitude: longArray[i]))
mapView.addAnnotation(individualAnnotation)
}
//store annotations into a variable
var annotationArray = self.mapView.annotations
//prints out an current annotations in array
//Result: [<AppName.Annotations: 0x185535a0>, <AppName.Annotations: 0x1663a5c0>, <AppName.Annotations: 0x18575fa0>, <AppName.Annotations: 0x185533a0>, <AppName.Annotations: 0x18553800>]
println(annotationArray)
аннотаций Класс: импорт MapKit
class Annotations: NSObject, MKAnnotation {
let title: String
//let locationName: String
//let discipline: String
let coordinate: CLLocationCoordinate2D
init(title: String, coordinate: CLLocationCoordinate2D) {
self.title = title
self.coordinate = coordinate
super.init()
}
var subtitle: String {
return title
}
}
Спасибо, это было правильно. –
Привет, Джадсон, этот метод работает, однако он не организован, когда был создан маркер. Кажется, случайным образом вытащить маркеры в массив. Вы знаете, как организовать индекс, когда он был создан? –
массив mapView.annotations не сортируется к моменту добавления аннотации к представлению карты. Вы можете сохранить свой отсортированный массив аннотаций. Итак, вы начинаете с пустого массива, и каждый раз, когда вы вызываете mapView.addAnnotation(), также добавляйте эту аннотацию в конец вашего массива. Результатом будет массив аннотаций, отсортированный от самого раннего к последнему. Затем, вместо того, чтобы перебирать через mapView.annotations, как и выше, прокручивать отсортированный массив созданных аннотаций. –