Looking for ios Keywords? Try Ask4Keywords

iOSUIKit Dynamics


Einführung

UIKit Dynamics ist eine vollständige, in UIKit integrierte reale Physik-Engine. Sie können Schnittstellen erstellen, die sich real anfühlen, indem Sie Verhaltensweisen wie Schwerkraft, Anhänge, Kollision und Kräfte hinzufügen. Sie definieren die physischen Merkmale, die Ihre Oberflächenelemente übernehmen sollen, und die Dynamik-Engine kümmert sich um den Rest.

Bemerkungen

Beim Importieren von UIKit Dynamics sollten Sie unbedingt beachten, dass Ansichten, die vom Animator positioniert werden, nicht ohne weiteres mit anderen gängigen iOS-Layout-Methoden positioniert werden können.

Neulinge bei UIKit Dynamics haben oft mit diesem wichtigen Vorbehalt zu kämpfen. Das Platzieren von Einschränkungen in einer Ansicht, die ebenfalls ein Element von UIDynamicBehavior führt möglicherweise zu Verwirrung, da sowohl die Auto-Layout-Engine als auch die dynamische Animator-Engine um die entsprechende Position kämpfen. In ähnlicher Weise führt der Versuch, den Rahmen direkt von einer vom Animator gesteuerten Ansicht festzulegen, zu unruhigen Animationen und unerwarteter Platzierung. Wenn Sie eine Ansicht als Element zu einem UIDynamicBehavior bedeutet dies, dass der Animator die Verantwortung für das Positionieren einer Ansicht übernimmt. UIDynamicBehavior sollten Änderungen der Ansichtspositionen durch den Animator implementiert werden.

Der Rahmen einer Ansicht, der von einem dynamischen Animator aktualisiert wird, kann festgelegt werden. Dem Animator sollte jedoch unmittelbar danach mitgeteilt werden, dass das interne Modell des Animators der Ansichtshierarchie aktualisiert wird. Wenn ich beispielsweise UILabel , ein label , das ein Element eines UIGravityBehavior kann ich es an den oberen UIGravityBehavior des Bildschirms verschieben, um zu sehen, wie es wieder fällt, indem es sagt:

Schnell

label.frame = CGRect(x: 0.0, y: 0.0, width: label.intrinsicContentSize.width, height: label.intrinsicContentSize.height)
dynamicAnimator.updateItem(usingCurrentState: label)

Ziel c

self.label.frame = CGRectMake(0.0, 0.0, self.label.intrinsicContentSize.width, self.label.intrinsicContentSize.height);
[self.dynamicAnimator updateItemUsingCurrentState: self.label];

Danach wendet der Animator das Schwerkraftverhalten von der neuen Position des Etiketts an.

Eine andere verbreitete Technik ist die Verwendung von UIDynamicBehaviors zum Positionieren von Ansichten. Wenn beispielsweise eine Ansicht unter einem Berührungsereignis positioniert werden soll, ist das Erstellen eines UIAttachmentBehavior und das Aktualisieren des anchorPoint in entweder touchesMoved oder der Aktion von UIGestureRecognizer eine effektive Strategie.

UIKit Dynamics Verwandte Beispiele