Sto diventando abbastanza frustrato con le limitazioni di MKMapKit. Mio problema attuale ha a che fare con z ordinamento delle viste di annotazione, in particolare per quanto riguarda tocchi. Se si accetta l'ordine z predefinito MapKit ti dà:
- L'ordine appare casuale. L'ordine z è correlato all'ordine sono state aggiunte le annotazioni.
- Se un'annotazione finisce in cima ad un altro, toccando l'annotazione superiore generalmente porta il richiamo per l'annotazione inferiore. Sembra che il rilevamento colpo non ha nemmeno rispettare l'ordine di visualizzazione. Cosa succede con quello?
Ho provato risolvere # 1 utilizzando qualcosa di simile al seguente codice trovato sul web (che è stato progettato per fornire un certo controllo su z-order)
- (void) MapView: (MKMapView *) MapView didAddAnnotationViews: (*) NSArray viste {
per (MKAnnotationView * annView nelle viste) {
TopBottomAnnotation * ann = (TopBottomAnnotation *) [annotazione annView];
if ([top ann]) {
[[AnnView superview] bringSubviewToFront: annView];
} altro {
[[AnnView superview] sendSubviewToBack: annView];
}
}
}
Funzionando attraverso il punto di vista di annotazione passati MapView: didAddAnnotationViews: e regolando il loro ordine z sembra risolvere 1 #. Il problema è che ora i punti di vista callout non sono più sempre in primo piano il punto di vista di annotazione. Il MapKit sembra ottenere molto confuso circa gli strati (didascalie devono essere disegnate in un livello superiore tutte le viste annotazione). Posso anche capire come si sta facendo confusa dal momento che tutti i MKAnnotationViews ricevuti hanno lo stesso superview (una classe privata MKOverlayView). Si potrebbe pensare che tutto il disegno ragionevole trarre le didascalie relative a questa vista di sovrapposizione.
Qualcuno ha risolto # 1 o # 2 con successo?













