Looking for ios Keywords? Try Ask4Keywords

iOSDynamique UIKit


Introduction

UIKit Dynamics est un moteur physique réel intégré à UIKit. Il vous permet de créer des interfaces qui se sentent réelles en ajoutant des comportements tels que la gravité, les pièces jointes, les collisions et les forces. Vous définissez les caractéristiques physiques que vous souhaitez que vos éléments d’interface adoptent, et le moteur dynamique prend en charge le reste.

Remarques

Lorsque vous utilisez UIKit Dynamics, vous devez garder à l'esprit que les vues positionnées par l'animateur ne peuvent pas être facilement positionnées par d'autres méthodes de mise en page iOS courantes.

Les nouveaux arrivants à UIKit Dynamics ont souvent du mal avec cette importante mise en garde. Placer des contraintes sur une vue qui est également un élément d'un UIDynamicBehavior entraînera probablement une confusion à la fois en tant que moteur de présentation automatique et lutte contre le moteur d'animation dynamique sur la position appropriée. De même, si vous tentez de définir directement le cadre d’une vue contrôlée par l’animateur, vous obtenez généralement une animation instable et un placement inattendu. L'ajout d'une vue en tant qu'élément à un UIDynamicBehavior signifie que l'animateur prendra la responsabilité de positionner une vue et que de tels changements de position de vue devront être implémentés via l'animateur.

Il est possible de définir une image en cours de mise à jour par un animateur dynamique, mais celle-ci doit être immédiatement suivie par l'envoi de messages à l'animateur afin de mettre à jour le modèle interne de l'animateur. Par exemple, si j'ai UILabel , label qui est un élément d'un UIGravityBehavior je peux le déplacer en haut de l'écran pour le regarder retomber en disant:

Rapide

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

Objectif c

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

Après quoi l'animateur appliquera le comportement de gravité du nouvel emplacement de l'étiquette.

Une autre technique courante consiste à utiliser UIDynamicBehaviors pour positionner des vues. Par exemple, si vous souhaitez positionner une vue sous un événement tactile, la création d'un UIAttachmentBehavior et la mise à jour de son anchorPoint dans les anchorPoint de touchesMoved ou d' UIGestureRecognizer constituent une stratégie efficace.

Dynamique UIKit Exemples Liés