Position und anchorPoint bei einer UIView Frame Animation.

Früher oder später benötigt ein iOS-Entwickler eigene Animationen zwischen den Ansichten.

Dabei handelt es sich oft um eine Mischung aus Positionsänderungen und der Skalierung des Frames einer Ansicht auf die Animation einer anderen Ansicht. Sie könnten so etwas wie das versuchen:

Steigern Sie ihre Conversion Rate.

Wir helfen Ihnen durch 3D Animationen mehr Anfragen aus Ihrer Website zu generieren.

Copy to Clipboard

Manchmal funktioniert das, aber nicht, wenn myView Unteransichten hat. Wenn myView beispielsweise ein Label enthält, ändert sich der Frame der Überwachungsansicht, aber das Label bleibt so, wie es ist. Stattdessen brauchen wir das Etikett, um es zusammen mit dem Superview zu skalieren. Wir könnten die Frame Animation auf den Frame des Labels anwenden, aber während dies die Größe des Labels ändert, wird die Schrift nicht skaliert. Wir brauchen einen besseren Ansatz. Wir zeigen ihnen, wie Sie die Transformationseigenschaften der Ansicht und die Position der Ebene verwenden, um das Ziel zu erreichen.

Position und ancherPoint.

In iOS hat jede UIView eine Ebene mit zwei interessanten Eigenschaften: anchorPoint und position. Diese beiden Eigenschaften sind miteinander verbunden und das Ändern eines anchorPoints oder die Position der Ebene ändert ihre Platzierung in der übergeordneten Ansicht.

Steigern Sie ihre Conversion Rate.

Wir helfen Ihnen durch 3D Animationen mehr Anfragen aus Ihrer Website zu generieren.

Die Eigenschaft position definiert die Position des anchorPoints im Superview, so dass das Ändern des anchorPoints oder der Position die Platzierung der untergeordneten View in der Container-Übersicht beeinflusst. Der Positionswert stellt Punkte auf dem Bildschirm dar, so dass das Setzen von x = 1 die Ansicht um einen Punkt nach rechts verschiebt. Der anchorPoint-Wert ist anders. Bei anchorPoint wird bei der Einstellung x = 1 der anchorPoint am rechten Rand der Ansicht gesetzt, bei x = 0 am linken Rand.

Kommen wir zu den Animationen.

Lassen Sie uns das alles mit ein paar Animationen verdeutlichen. Beginnen Sie mit einer Ansicht und einer Unteransicht:

Copy to Clipboard

Lassen wir initial Square seinen Frame animieren von

Copy to Clipboard

zu

Copy to Clipboard

Lassen Sie uns dies aufschlüsseln und mit der Position beginnen, so dass das smallSquare in der Mitte des Containers endet.

Copy to Clipboard

Ok, das war einfach. Lassen Sie uns nun das smallSquare auf die doppelte Größe skalieren, während es sich in die Mitte bewegt.

Copy to Clipboard

Auf dieser Grundlage können wir nun eine neue Funktion erstellen, welche die Ansicht von ihrem ursprünglichen Frame auf einen neues verschiebt.

Copy to Clipboard

Jetzt können wir unsere oberen Transitions als

Copy to Clipboard

definieren.

Nun zum anchorPoint.

Wir haben angenommen, dass der anchorPoint immer auf x:0.5 und y gesetzt ist: 0.5. Dies ist die Standardposition, aber jemand könnte den anchorPoint an eine andere Position verschoben haben und wir müssen dies berücksichtigen. Wir müssen unsere Funktion ändern von

Copy to Clipboard

zu

Copy to Clipboard

Unabhängig von der Position des anchorPoints werden die Ansichten nun korrekt verschoben und skaliert. Zum Zwecke der Skalierung und Positionsänderung benötigen wir den anchorPoint einer Ebene nicht zu verschieben, wir können uns einfach auf layer.position verlassen und transformieren, um den Effekt der Animation zu erzielen, der von jedem beliebigen Punkt in der Ansicht ausgeht.

Steigern Sie ihre Conversion Rate.

Wir helfen Ihnen durch 3D Animationen mehr Anfragen aus Ihrer Website zu generieren.

Zusammenfassung.

Die Methode, die entwickelt wurde, kann ihre Arbeit ein wenig einfacher und nervenschonender machen. Nachfolgend finden Sie die vollständige Funktion als Erweiterung von UIView:

Copy to Clipboard

Vielen Dank für ihren Besuch.

3DMaster