ja animowanie ramkę mojego MapView z animacją UIView:Wyłącz dodawanie adnotacji do MapView podczas animowania jej ramkę
[UIView animateWithDuration:0.25f animations:^{
self.mapView.frame = frame;
} completion:nil];
}
Podczas rozbudowy MapView z powyższym widzę, że MapView jest dodanie zagubionych adnotacje do animacji jest skończony. Po zakończeniu animacji utracone adnotacje znikają.
Połączenia są następujące kiedy rozwinąć mapę:
- animateWithDuration rozpocząć
- MapView: regionWillChangeAnimated
- MapView: didAddAnnotationViews
- MapView: regionDidChangeAnimated
- animateWithDuration kompletny
Nie ma problemu, gdy minimalizuję mapę prawdopodobnie dlatego, że mapView: didAddAnnotationViews nie jest wywoływany.
Czy mogę w jakiś sposób wyłączyć widoki map regionuWillChange podczas animowania?
Przed animacji:
Halfway w animacji. Widzisz wiele nieprawidłowych adnotacji.
Animacja jest wykonywana. Wszystkie niepoprawne adnotacje zniknęły.
Czy dodawanie/usuwanie adnotacji w metodach delegata regionWill/DidChangeAnimated? Jeśli tak, spróbuj ustawić flagę boolowską na YES przed rozpoczęciem animacji iw metodach delegatów, nie rób nic, jeśli flaga jest TAK.Ustaw flagę na NIE, gdy animacja zostanie zakończona. – Anna
Nie, testowałem z obnażonym projektem, w którym dodałem adnotacje tylko raz w viewDidLoad, a następnie animowałem mapę w górę iw dół. Więc nie używam żadnej metody delegata do mapView, aby tak się stało. – Toydor
Co powiesz na ukrywanie adnotacji podczas animowania? a następnie wyświetlać adnotacje? – iphonic