swift swift2 animatewithduration swift3 optionsettype

¿Cuál es la sintaxis de Swift 3 animateWithDuration?



swift2 swift3 (3)

Swift 3/4 Sintaxis

Aquí hay una actualización con la sintaxis de Swift 3:

UIView.animate(withDuration: 0.5, delay: 0.3, options: [.repeat, .curveEaseOut, .autoreverse], animations: { self.username.center.x += self.view.bounds.width }, completion: nil)

Si necesita agregar un controlador de finalización simplemente agregue un cierre como sigue:

UIView.animate(withDuration: 0.5, delay: 0.3, options: [.repeat, .curveEaseOut, .autoreverse], animations: { // animation stuff }, completion: { _ in // do stuff once animation is complete })

Vieja respuesta:

Resulta que es una solución muy simple, simplemente cambie las options: nil options: [] .

Swift 2.2 Sintaxis:

UIView.animateWithDuration(0.5, delay: 0.3, options: [], animations: { self.username.center.x += self.view.bounds.width }, completion: nil)

¿Qué cambió?

Swift 2 OptionSetType lista de opciones delimitada por comas C-Style a favor de conjuntos de opciones (ver: OptionSetType ). En mi pregunta original, pasé in nil para mis opciones, que era válida antes de Swift 2. Con la sintaxis actualizada, ahora vemos una lista de opciones vacía como un conjunto vacío: [] .

Un ejemplo de animateWithDuration con algunas opciones sería este:

UIView.animateWithDuration(0.5, delay: 0.3, options: [.Repeat, .CurveEaseOut, .Autoreverse], animations: { self.username.center.x += self.view.bounds.width }, completion: nil)

Estoy transfiriendo una aplicación anterior a Xcode 7 beta y me aparece un error en mis animaciones:

No se puede invocar ''animateWithDuration'' con una lista de argumentos de tipo ''(Double, delay: Double, options: nil, animations: () -> _, completion: nil)''

Aquí está el código:

UIView.animateWithDuration(0.5, delay: 0.3, options: nil, animations: { self.username.center.x += self.view.bounds.width }, completion: nil)

Esto funciona en Xcode 6, así que supongo que es una actualización en Swift. Entonces mi pregunta es:

¿Cuál es la sintaxis de Swift 3 para animateWithDuration?


Swift 3 .....

UIView.animate(withDuration: 1.5, delay: 0.05 * Double(index), usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: { cell.transform = CGAffineTransform(translationX: 0, y: 0); }, completion: nil)


Swift 3 Sintaxis con bloque de finalización

UIView.animate(withDuration: 3.0 , delay: 0.25, options: .curveEaseOut, animations: { // animation }, completion: { _ in // completion })