Ich habe Probleme damit, dass die Blöcke auf Swift funktionieren. Hier ist ein Beispiel, das funktioniert hat (ohne Abschlussblock):
UIView.animateWithDuration(0.07) {
self.someButton.alpha = 1
}
oder alternativ ohne den nachlaufenden Verschluss:
UIView.animateWithDuration(0.2, animations: {
self.someButton.alpha = 1
})
Aber wenn ich einmal versuche, den Abschlussblock hinzuzufügen, funktioniert es einfach nicht mehr:
UIView.animateWithDuration(0.2, animations: {
self.blurBg.alpha = 1
}, completion: {
self.blurBg.hidden = true
})
Die automatische Vervollständigung gibt mir completion: ((Bool) -> Void)?
aber nicht sicher, wie es funktioniert. Auch mit Trailing Closure versucht, bekam aber den gleichen Fehler:
! Could not find an overload for 'animateWithDuration that accepts the supplied arguments
Update für 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#>
})
Ich verwende den nachfolgenden Verschluss nicht für den Abschlussblock, weil ich denke, dass er nicht klar genug ist, aber wenn es Ihnen gefällt, können Sie Trevors Antwort unten sehen .