CATransition ist ziemlich ungewöhnlich. Betrachten Sie den folgenden Code.
%Vor%Beachten Sie, dass ich dem Übergang nirgendwo gesagt habe, dass ich displayView statt loadingView anzeigen möchte, also müssen die Ansichten irgendwie auf den Übergang selbst zugreifen können. Kann mir jemand näher erklären, wie das funktioniert?
Wenn Sie den Übergang als Animation hinzufügen, wird eine implizite CAT-Transaktion gestartet. Ab diesem Zeitpunkt werden alle Änderungen an Layer-Eigenschaften animiert und nicht sofort angewendet. Die Art, wie CATransition diese Animation ausführt, um einen Schnappschuss der Ansicht zu erstellen, bevor die Layer-Eigenschaften geändert werden, und eine Momentaufnahme dessen, wie die Ansicht aussehen wird, nachdem die Layer-Eigenschaften geändert wurden. Es verwendet dann einen Filter (auf Mac ist dies Core Image, aber auf dem iPhone, ich vermute, es ist nur hart codierte Mathematik), um im Laufe der Zeit zwischen diesen beiden Bildern zu iterieren.
Dies ist eine Schlüsselfunktion von Core Animation. Ihre Zeichenlogik muss sich im Allgemeinen nicht mit der Animation befassen. Du erhältst einen Grafikkontext, du zeichnest hinein, du bist fertig. Das System verarbeitet das Zusammensetzen mit anderen Bildern im Laufe der Zeit (oder dreht es im Raum oder was auch immer). In dem Fall, in dem der verborgene Zustand geändert wird, wird das vollständig zusammengesetzte Bild im Anfangszustand mit dem zusammengesetzten Bild im Endzustand gemischt. Sehr schnell auf einer GPU, und es spielt keine Rolle, welche Änderung Sie an der Ansicht vorgenommen haben.
Tags und Links cocoa