Saya mengalami masalah saat membuat blok berfungsi di Swift. Berikut adalah contoh yang berhasil (tanpa blok penyelesaian):
UIView.animateWithDuration(0.07) {
self.someButton.alpha = 1
}
atau sebagai alternatif tanpa penutupan akhir:
UIView.animateWithDuration(0.2, animations: {
self.someButton.alpha = 1
})
tetapi begitu saya mencoba menambahkan blok penyelesaian, itu tidak akan berhasil:
UIView.animateWithDuration(0.2, animations: {
self.blurBg.alpha = 1
}, completion: {
self.blurBg.hidden = true
})
Pelengkapan otomatis memberi saya completion: ((Bool) -> Void)?
tetapi tidak yakin bagaimana cara membuatnya bekerja. Juga mencoba dengan penutupan tambahan tetapi mendapatkan kesalahan yang sama:
! Could not find an overload for 'animateWithDuration that accepts the supplied arguments
Pembaruan untuk 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#>
})
Saya tidak menggunakan penutupan trailing untuk blok penyelesaian karena menurut saya kurang jelas, tetapi jika Anda suka maka Anda dapat melihat jawaban Trevor di bawah ini .