Ich experimentiere mit der neuesten Version 1.2.1.2944 von Google Maps für iOS SDK, um a zu animieren GMSGroundOverlay
. Der Benutzer hat die Kontrolle über die Bildsequenz, daher ist die Verwendung einer Animation UIImage
leider nicht möglich, daher lade ich sie im laufenden Betrieb UIImage
. Das GMSGroundOverlay.icon
ist auf das eingestellt UIImage
, was aktualisiert wird.
Abgesehen von der hohen Speichernutzung habe ich anscheinend eine Einschränkung dahingehend festgestellt, dass jedes Mal, wenn ich versuche, eine UIImage
Verwendung GMSGroundOverlay.icon
mit mehr als 1000 x 1000 Pixel zu überlagern, ein Absturz auftritt. UIImage
Wenn Sie auf eine Größe von 1000 x 1000 Pixel verweisen, wird der Absturz umgangen.
Es fällt mir jedoch auf, dass ich CATiledLayer
das Bild möglicherweise verwenden sollte, um es nur in den Speicher und anschließend in die Icon-Eigenschaft von zu laden. Hat GMSGroundOverlay
jemand Erfahrung mit der Verwendung CATiledLayer
von Google Maps für iOS SDK und der Sequenzierung von Bildern als Animation GMSGroundOverlay
?
quelle
Antworten:
Ich habe diese Antwort von pressanswer.com erhalten. Ich denke, sie kann Ihnen helfen.
Da ich den Schlüsselpfad "Position" derzeit nicht zum Animieren verwenden kann, habe ich ihn letztendlich mit den Schlüsselpfaden "Breite" und "Länge" getrennt animiert.
Berechnen Sie zuerst die Punkte und fügen Sie sie zu zwei separaten Arrays hinzu, eines für den Breitengrad (y) und eines für den Längengrad (x). Verwenden Sie dann die Eigenschaft values in CAKeyFrameAnimation zum Animieren. Erstellen Sie 2 CAKeyFrameAnimation-Objekte (1 für jede Achse), gruppieren Sie sie mit CAAnimationGroup und animieren Sie sie zu einem Kreis.
In meiner Gleichung verändere ich die Länge des Radius auf jeder Achse, damit ich auch einen ovalen Pfad erzeugen kann.
quelle