Tengo problemas para hacer que los bloques funcionen en Swift. Aquí hay un ejemplo que funcionó (sin bloque de finalización):
UIView.animateWithDuration(0.07) {
self.someButton.alpha = 1
}
o alternativamente sin el cierre final:
UIView.animateWithDuration(0.2, animations: {
self.someButton.alpha = 1
})
pero una vez que trato de agregar el bloque de finalización, simplemente no funcionará:
UIView.animateWithDuration(0.2, animations: {
self.blurBg.alpha = 1
}, completion: {
self.blurBg.hidden = true
})
El autocompletar me da completion: ((Bool) -> Void)?
pero no estoy seguro de cómo hacerlo funcionar. También probé con cierre final pero obtuve el mismo error:
! Could not find an overload for 'animateWithDuration that accepts the supplied arguments
Actualización para Swift 3/4:
// This is how I do regular animation blocks
UIView.animate(withDuration: 0.2) {
<#code#>
}
// Or with a completion block
UIView.animate(withDuration: 0.2, animations: {
<#code#>
}, completion: { _ in
<#code#>
})
No uso el cierre final para el bloque de finalización porque creo que carece de claridad, pero si te gusta, puedes ver la respuesta de Trevor a continuación .