constraint animations animate uiviewanimation swift

uiviewanimation - animations - uiview animate



Opciones de animaciĆ³n UIView usando Swift (2)

¿Cómo establezco UIViewAnimationOptions en .Repeat en un bloque de animación UIView :

UIView.animateWithDuration(0.2, delay:0.2 , options: UIViewAnimationOptions, animations: (() -> Void), completion: (Bool) -> Void)?)


Swift 3

Más o menos lo mismo que antes:

UIView.animate(withDuration: 0.2, delay: 0.2, options: UIViewAnimationOptions.repeat, animations: {}, completion: nil)

excepto que puedes omitir el tipo completo:

UIView.animate(withDuration: 0.2, delay: 0.2, options: .repeat, animations: {}, completion: nil)

y todavía puedes combinar opciones:

UIView.animate(withDuration: 0.2, delay: 0.2, options: [.repeat, .curveEaseInOut], animations: {}, completion: nil)

Swift 2

UIView.animateWithDuration(0.2, delay: 0.2, options: UIViewAnimationOptions.Repeat, animations: {}, completion: nil) UIView.animateWithDuration(0.2, delay: 0.2, options: .Repeat, animations: {}, completion: nil) UIView.animateWithDuration(0.2, delay: 0.2, options: [.Repeat, .CurveEaseInOut], animations: {}, completion: nil)


La mayoría de los conjuntos de "opciones" de Cocoa Touch que eran enumerados antes de Swift 2.0 ahora se han cambiado a estructuras, siendo UIViewAnimationOptions una de ellas.

Mientras que UIViewAnimationOptions.Repeat se habría definido previamente como:

(semi-pseudo codigo)

enum UIViewAnimationOptions { case Repeat }

Ahora se define como:

struct UIViewAnimationOption { static var Repeat: UIViewAnimationOption }

El punto es, para lograr lo que se logró antes del uso de máscaras de bits ( .Reverse | .CurveEaseInOut ), ahora deberá colocar las opciones en una matriz, ya sea directamente después del parámetro de options , o definido en una variable antes de utilizarla:

UIView.animateWithDuration(0.2, delay: 0.2, options: [.Repeat, .CurveEaseInOut], animations: {}, completion: nil)

o

let options: UIViewAnimationOptions = [.Repeat, .CurveEaseInOut] UIView.animateWithDuration(0.2, delay: 0.2, options: options, animations: {}, completion: nil)

Consulte la siguiente respuesta del usuario @ 0x7fffffff para obtener más información: Swift 2.0: el operador binario “|” no se puede aplicar a dos operandos UIUserNotificationType