Dieser Code basiert auf sehr spezifischen Delegierten -Aufrufsequenzen.
Das count++
impliziert es nimmt das an didAddAnnotationViews
Die Delegate -Methode wird sofort und getrennt aufgerufen, nachdem jede Annotation hinzugefügt wurde.
Dies ist eine unsichere Annahme unabhängig von der iOS -Version.
Da dieser Zoomcode nicht auf die Annotation beruht Ansichten Um das Zoomen zu machen (es braucht nur die Annotation Modelle - dh. das id<MKAnnotation>
Objekte), es muss nicht in sein didAddAnnotationViews
an erster Stelle.
Setzen Sie einfach den Zoomcode ein (das Teil in die if
Block), direkt nach dem Code, der die Anmerkungen hinzufügt (vermutlich nach a for
Schleife, die durchgeht arrayResults
). Das sollte in jeder iOS -Version funktionieren.
Beachten Sie auch, dass in iOS 7 der neue Showannotationen: Animated: Die Methode macht diese manuelle Karte rechte Konstruktion unnötig. In iOS 7 können Sie einfach:
[mapView showAnnotations:mapView.annotations animated:YES];