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