Jeg får ganske frustrert med begrensningene i MKMapKit. Min nåværende problem har å gjøre med den Z-ordningen annoteringsvisninger synspunkter, særlig når det gjelder detaljer. Hvis du godtar standard z bestille mapkit gir deg:
- Ordren vises tilfeldig. Den z-ordre er ikke relatert til den rekkefølge de merknadene ble tilsatt.
- Hvis man annotering ender opp på toppen av en annen, berøre toppen annotering vanligvis bringer opp forklaringen til bunnen merknader. Det virker som den populære oppdage ikke engang respekterer uavgjort rekkefølge. Hva skjer med det?
Jeg har prøvd å løse # 1 ved hjelp av noe som ligner på følgende kode funnet på nettet (som er designet for å gi en viss kontroll over z-order)
- (void) mapView: (MKMapView *) mapView didAddAnnotationViews: (NSArray *) visninger {
for (MKAnnotationView * annView i visninger) {
TopBottomAnnotation * ann = (TopBottomAnnotation *) [annView annotering];
if ([ann top]) {
[[AnnView Super] bringSubviewToFront: annView];
} Else {
[[AnnView Super] sendSubviewToBack: annView];
}
}
}
Kjører gjennom merknads synspunkter sendes til mapView: didAddAnnotationViews: og justere deres z-order ser ut til å fikse # 1. Problemet er at nå synspunktene til info er ikke lenger alltid på topp til synspunktene merknad. Den MapKit ser ut til å bli veldig forvirret om lagene (bildeforklaringer skal trekkes i et lag over alle merknader utsikt). Jeg kan til og med finne ut hvordan det er å bli forvirret siden alle MKAnnotationViews du får ha den samme Super (en privat klasse MKOverlayView). Du skulle tro enhver rimelig design ville trekke forklaringer om dette overlegget visningen.
Har noen løst # 1 og # 2 med hell?













