ฉันมีปัญหาในการทำให้บล็อกทำงานบน 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#>
})
ฉันไม่ได้ใช้ปิดท้ายสำหรับบล็อกเสร็จสิ้นเพราะผมคิดว่ามันขาดความชัดเจน แต่ถ้าคุณชอบมันแล้วคุณจะเห็นคำตอบของเทรเวอร์ด้านล่าง