Ho problemi a far funzionare i blocchi su Swift. Ecco un esempio che ha funzionato (senza blocco di completamento):
UIView.animateWithDuration(0.07) {
self.someButton.alpha = 1
}
o in alternativa senza la chiusura finale:
UIView.animateWithDuration(0.2, animations: {
self.someButton.alpha = 1
})
ma una volta che provo ad aggiungere il blocco di completamento, semplicemente non funzionerà:
UIView.animateWithDuration(0.2, animations: {
self.blurBg.alpha = 1
}, completion: {
self.blurBg.hidden = true
})
Il completamento automatico mi dà completion: ((Bool) -> Void)?
ma non sono sicuro di come farlo funzionare. Ho provato anche con la chiusura finale ma ho ricevuto lo stesso errore:
! Could not find an overload for 'animateWithDuration that accepts the supplied arguments
Aggiornamento per 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#>
})
Non uso la chiusura finale per il blocco di completamento perché penso che manchi di chiarezza, ma se ti piace puoi vedere la risposta di Trevor di seguito .