Swiftでブロックを機能させるのに問題があります。これが機能した例です(完了ブロックなし)。
UIView.animateWithDuration(0.07) {
self.someButton.alpha = 1
}
または、末尾のクロージャーなし:
UIView.animateWithDuration(0.2, animations: {
self.someButton.alpha = 1
})
しかし、完了ブロックを追加しようとすると、機能しません。
UIView.animateWithDuration(0.2, animations: {
self.blurBg.alpha = 1
}, completion: {
self.blurBg.hidden = true
})
オートコンプリートは私に与えますcompletion: ((Bool) -> Void)?
が、それを動作させる方法はわかりません。末尾のクロージャでも試しましたが、同じエラーが発生しました:
! Could not find an overload for 'animateWithDuration that accepts the supplied arguments
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#>
})
私は完了ブロックの末尾クロージャーを明確にしていないと思うので使用しませんが、気に入った場合は以下のTrevorの答えを見ることができます。