Tutorial: Como usar UIKit Dynamics

tutorial-como-usar-uikit-dynamics

En tutorial vamos a ver como usar UIKit Dynamics

UIKit Dynamics son un conjunto de clases que nos permiten añadir efectos físicos a los objetos de nuestras aplicaciones.

Por ejemplo podemos aplicar la fuerza de la gravedad sobre una vista, un botón o una etiqueta.

También podemos aplicar efectos de colisiones, y efecto imán con oscilamento con otros objetos.

Se trata de una tecnología que va a dotar a nuestras aplicaciones de un dinamismo impresionante, y lo mejor de todo: esto es muy fácil de implementar.

Vamos a ver como usar UIKit Dynamics así que coge Xcode que empezamos.

UIDynamicAnimator

Lo primero que tenemos que hacer es crear una instancia del objeto UIDynamicAnimator, este va a ser el actor principal, el que va a llevar todo «el cotarro».

La metodología que nos va a permitir como usar UIKit Dynamics es la siguiente:

  1. Crear el objeto UIDynamicAnimator
  2. Crear los diferentes efectos físicos que queramos
  3. Añadir el efecto en cuestión para que sea gestionado por el objeto de la clase UIDynamicAnimator
  4. «Jugar» si es el caso, con las diferentes propiedades del efecto

UI lo que sea Behavior

Pues sí, así es como vas a identificar a cada efecto físico, las clases empiezan con UI, después se indica la característica y por último se añade Behavior.

Así, tenemos los siguientes objetos que simulan diferentes comportamientos físicos:

  • UIGravityBehavior: El objeto o los objetos se ven afectados por la fuerza de la gravedad.
  • UICollisionBehavior: Otorgarás al objeto o los objetos la capacidad de colisionar con otros objetos y vistas.
  • UIDynamicItemBehavior: El objeto o los objetos se ven afectados por rotación y velocidad.
  • UIAttachmentBehavior: Crearás una unión entre dos objetos, por lo que los movimientos de uno afectarán al otro y viceversa.
  • UIPushBehavior: Con este efecto el objeto o los objetos pueden recibir golpes, el golpe realizará un desplazamiento sobre el objeto u objetos.
  • UISnapBehavior: Podrás definir un punto para que el objeto o los objetos se desplacen hasta el mismo.

Cómo ves, tenemos varios efecto, además cada una de las clases de estos efectos tienen sus propias propiedades y métodos, por lo que es realmente increíble la cantidad de efectos y juego que dan estas clases.

Ejemplo práctico

Vamos a hacer un ejemplo práctico, como la tónica es la misma para usar el resto, te ánimo a que una vez aprendido como usar estos elementos, investigues y hagas tus propias pruebas para aplicar espectaculares efectos en tus aplicaciones.

Abre Xcode y crea un nuevo proyecto.

A continuación añade una etiqueta a tu vista y conecta la misma creando una conexión Outlet, si esto te suena a chino estás muy verde para aprender esto, así que empieza por hacer este curso gratis.

La conexión de la etiqueta con nuestro código generará una propiedad de la clase UILabel:

@IBOutlet weak var label: UILabel!

Ahora viene lo bueno, declara al animador, el objeto de la clase UIDynamicAnimator:

var animator: UIDynamicAnimator? = UIDynamicAnimator()

Por último, en el método viewDidLoad() crea el efecto en cuestión, en este ejemplo crearemos el efecto de la gravedad, y después añade este efecto a tu objeto, para terminar dile al animador que quieres que gestione este efecto.

let efectoGravedad = UIGravityBehavior(items: [label])

animator?.addBehavior(efectoGravedad)

Toda la potencia y sencillez de Apple

Parece mentira que con unas pocas líneas de código se puedan crear efectos tan espectaculares con nuestros objetos.

Si esto te parece complicado o no has entendido algo, puedes inscribirte en mi curso gratuito para empezar a crear Apps para los dispositivos de Apple, ¡Que es GRATIS! busca los avisos por esta Web.

Pues esto es todo, te ánimo a que sigas descubriendo estas clases, y si tienes algo que decirme, déjame un comentario 😉

About The Author
iOS Developer & Instructor at CFE Apps. Enseño a crear aplicaciones iOS a todo el que quiera aprender.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.