iOSUIKit Dynamics


Introducción

UIKit Dynamics es un motor completo de física del mundo real integrado en UIKit. Te permite crear interfaces que se sienten reales al agregar comportamientos como la gravedad, los accesorios, la colisión y las fuerzas. Usted define los rasgos físicos que desea que adopten los elementos de su interfaz, y el motor de dinámica se encarga del resto.

Observaciones

Una cosa importante a tener en cuenta cuando se utiliza UIKit Dynamics es que las vistas posicionadas por el animador no pueden ser posicionadas fácilmente por otros métodos comunes de diseño de iOS.

Los recién llegados a UIKit Dynamics a menudo luchan con esta importante advertencia. Poner restricciones en una vista que también es un elemento de un UIDynamicBehavior probablemente causará confusión, ya que tanto el motor de diseño automático como el motor dinámico de animador luchan por la posición apropiada. De manera similar, intentar establecer el marco directamente de una vista controlada por el animador normalmente dará como resultado una animación inestable y una colocación inesperada. Agregar una vista como un elemento a un UIDynamicBehavior significa que el animador asumirá la responsabilidad de posicionar una vista y, como tal, los cambios de las posiciones de vista deben implementarse a través del animador.

Se puede configurar el marco de una vista que se está actualizando mediante un animador dinámico, pero se debe seguir inmediatamente enviando un mensaje al animador para actualizar el modelo interno de la jerarquía de vistas del animador. Por ejemplo, si tengo UILabel , la label que es un elemento de UIGravityBehavior puedo moverla a la parte superior de la pantalla para verla caer nuevamente diciendo:

Rápido

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

C objetivo

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

Después de lo cual el animador aplicará el comportamiento de la gravedad desde la nueva ubicación de la etiqueta.

Otra técnica común es usar UIDynamicBehaviors para posicionar las vistas. Por ejemplo, si se desea colocar una vista bajo un evento táctil, crear una UIAttachmentBehavior y actualizar su punto de anchorPoint en una touchesMoved o en una acción UIGestureRecognizer es una estrategia efectiva.

UIKit Dynamics Ejemplos relacionados