Ich füge der Ebene CABasicAnimation
eine AnnotationView
hinzu, um ein Auto zu simulieren, das sich auf der Kartenansicht bewegt.
Das funktioniert gut, bis ich versuche, die Kartenansicht zu vergrößern oder zu verkleinern, während die Animation läuft.
Ich habe festgestellt, dass die animierende Anmerkungsansicht beim Zoomen der Kartenansicht nicht mehr angezeigt wird !!
Ich nehme an, dass dies möglicherweise dadurch verursacht wird, dass die dem Animationsobjekt zugeordnete Ebene beim Zoomen der Kartenansicht entfernt wurde.
Ich versuche das zu lösen, indem ich die Animation beim Zoomen stoppe. aber das Ergebnis ist nicht gut. Das Auto scheint zum Zielpunkt zu springen.
Hat jemand Ideen dazu?
Weiß jemand, wie die Animation beim Zoomen der Kartenansicht noch ausgeführt werden kann?
Ich weiß nicht, wie Sie Ihr Problem programmatisch lösen können, aber was ist, wenn Sie die Fahrzeugposition speichern (Punkt a), wenn der Benutzer zu zoomen beginnt, wenn der Zoom abgeschlossen ist, berechnen Sie den Abstand zwischen der aktuellen Position und der neuen Position (Punkt b) und animiere es dann von Punkt a zu Punkt b. Auf diese Weise würde das Auto nicht zum nächsten Zielpunkt "springen". Um es etwas zarter zu machen, starten Sie die Geschwindigkeit des Autos mit der doppelten Geschwindigkeit und verlangsamen Sie dann auf normale Geschwindigkeit, wenn Sie sich dem Punkt "B" nähern. Ich denke, dadurch wird es weniger wie ein Käfer aussehen, sondern eher wie ein Effekt.
Ich habe es gelöst, indem ich alle Annotationsanimationen auf regionWillChangeAnimated beendet habe: -
%Vor%Tags und Links ios animation mkmapview mkannotationview cabasicanimation