Ik krijg nogal gefrustreerd door de beperkingen van MKMapKit. Mijn huidige probleem heeft te maken met de z-ordening van standpunten annotatie, in het bijzonder als het gaat om details. Als u de standaard z-order accepteren de mapkit geeft u:
- De volgorde willekeurig lijkt. De z-volgorde staat los van de volgorde waarin de annotaties toegevoegd.
- Als een annotatie eindigt boven een andere, gelijk aan de bovenste annotatie brengt doorgaans het highlight voor de onderste annotatie. Het lijkt alsof de hit detectie niet eens de loting orde respecteren. Hoe zit het daarmee?
Ik heb geprobeerd het oplossen van # 1 met behulp van iets wat lijkt op de volgende code vinden op het web (die werd ontworpen om enige controle over z-bestelling)
- (void) mapView: (MKMapView *) mapView didAddAnnotationViews: (NSArray *) bekeken {
voor (MKAnnotationView * annView in views) {
TopBottomAnnotation ann * = (TopBottomAnnotation *) [annView annotatie];
if ([ann top]) {
[[AnnView superview] bringSubviewToFront: annView];
} Else {
[[AnnView superview] sendSubviewToBack: annView];
}
}
}
Het doornemen van het uitzicht annotatie doorgegeven aan mapView: didAddAnnotationViews: en de aanpassing van hun z-order lijkt te bevestigen # 1. Het probleem is dat nu de standpunten bijschrift niet langer altijd op de top om van het uitzicht annotatie. De MapKit lijkt erg in de war over de lagen (bijschriften moet in een laag boven alle standpunten annotatie worden getrokken) te krijgen. Ik kan zelfs erachter te komen hoe het wordt verward omdat alle MKAnnotationViews u ontvangt dezelfde superview (een privé-klasse MKOverlayView). Je zou denken dat elk redelijk ontwerp zou de bijschriften te trekken over deze overlay view.
Heeft iemand opgelost # 1 of # 2 met succes?













