J'ai du mal à faire fonctionner les blocs sur Swift. Voici un exemple qui a fonctionné (sans bloc d'achèvement):
UIView.animateWithDuration(0.07) {
self.someButton.alpha = 1
}
ou bien sans la fermeture arrière:
UIView.animateWithDuration(0.2, animations: {
self.someButton.alpha = 1
})
mais une fois que j'essaye d'ajouter le bloc d'achèvement, cela ne fonctionnera tout simplement pas:
UIView.animateWithDuration(0.2, animations: {
self.blurBg.alpha = 1
}, completion: {
self.blurBg.hidden = true
})
La saisie semi-automatique me donne completion: ((Bool) -> Void)?
mais je ne sais pas comment le faire fonctionner. Également essayé avec la fermeture de fin mais a obtenu la même erreur:
! Could not find an overload for 'animateWithDuration that accepts the supplied arguments
Mise à jour pour 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#>
})
Je n'utilise pas la fermeture de fin pour le bloc de complétion car je pense que cela manque de clarté, mais si vous l'aimez, vous pouvez voir la réponse de Trevor ci-dessous .