Estou tendo problemas para fazer os blocos funcionarem no Swift. Aqui está um exemplo que funcionou (sem bloco de conclusão):
UIView.animateWithDuration(0.07) {
self.someButton.alpha = 1
}
ou, alternativamente, sem o fechamento final:
UIView.animateWithDuration(0.2, animations: {
self.someButton.alpha = 1
})
mas depois que tento adicionar o bloco de conclusão, ele simplesmente não funciona:
UIView.animateWithDuration(0.2, animations: {
self.blurBg.alpha = 1
}, completion: {
self.blurBg.hidden = true
})
O autocomplete me dá, completion: ((Bool) -> Void)?
mas não tenho certeza de como fazê-lo funcionar. Também tentei com o fechamento à direita, mas obteve o mesmo erro:
! Could not find an overload for 'animateWithDuration that accepts the supplied arguments
Atualização 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#>
})
Não uso o fechamento à direita para o bloco de conclusão porque acho que falta clareza, mas se você gostar, poderá ver a resposta de Trevor abaixo .