Come posso rendere possibile l'utilizzo di MapKit in Swift per trascinare un'annotazione da una posizione all'altra all'interno della mappa? Ho impostato la vista annotazione di essere trascinato, quando il mio guarda la mappa delegato crea la vista annotazione, in questo modo:iOS Swift MapKit che rende un'annotazione trascinabile dall'utente?
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView? {
var v : MKAnnotationView! = nil
if annotation is MyAnnotation {
let ident = "bike"
v = mapView.dequeueReusableAnnotationView(withIdentifier:ident)
if v == nil {
v = MyAnnotationView(annotation:annotation, reuseIdentifier:ident)
}
v.annotation = annotation
v.isDraggable = true
}
return v
}
Il risultato è che l'utente può sorta di trascinare l'annotazione - ma solo una volta. Dopodiché, l'annotazione diventa impossibile da trascinare, e ancora peggio, l'annotazione ora non è più "appartiene" alla mappa - quando la mappa viene spostata/spostata, l'annotazione rimane ferma invece di scorrere/panning con la mappa. Che cosa sto facendo di sbagliato?
È questa soluzione ancora applicabili (iOS 11)? Ho seguito la soluzione, ma il metodo 'mapView (_: annotationView: didChange: fromOldState:)' non viene mai chiamato. – mert