Ich habe einen Kartenansicht-Controller erstellen und alles funktioniert gut. Wenn Sie eine Anmerkungsansicht auf der Karte auswählen, wird eine benutzerdefinierte Ansicht auf dem Bildschirm angezeigt, um einige Informationen zu dieser Anmerkung anzuzeigen. Wenn Sie auf die Karte tippen, wird die Anmerkungsansicht abgewählt und die benutzerdefinierte Ansicht ausgeblendet.didDeselectAnnotationView nicht aufgerufen, wenn auf Kartenansicht tippen
Ich bekomme eine Anforderung jetzt, dass, wenn es nur eine Anmerkung auf der Ansicht ist, die benutzerdefinierte Ansicht zeigen, wenn die Kartenansicht Controller gedrückt wird. So einfach ich
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
wenn Kartenansicht implementieren fertig geladen.
- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView {
if (self.viewModel.pointsArray.count == 1) {
GSMapsLocationPoint* point = self.viewModel.pointsArray.lastObject;
MKAnnotationView *annotationView = [self.mapsView viewForAnnotation:point];
[self mapView:self.mapsView didSelectAnnotationView:annotationView];
}
}
Allerdings, wenn ich auf der Karte tippen, - (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
wird nicht aufgerufen. Wenn ich manuell auf diese Anmerkungsansicht tippe, wird didSelectAnnotationView
korrekt aufgerufen.
Es sieht so aus, als ob dieser Aufruf didSelectAnnotationView
im Code keinen Status ändert, so dass die Kartenansicht nicht weiß, dass eine Anmerkungsansicht ausgewählt ist.
Wie kann ich das beheben? Danke im Voraus.
Es funktioniert. Danke vielmals! – highsun16