Tôi đang gặp sự cố khi làm cho các khối hoạt động trên Swift. Đây là một ví dụ hoạt động (không có khối hoàn thành):
UIView.animateWithDuration(0.07) {
self.someButton.alpha = 1
}
hoặc cách khác mà không có dấu đóng cuối:
UIView.animateWithDuration(0.2, animations: {
self.someButton.alpha = 1
})
nhưng khi tôi cố gắng thêm khối hoàn thành, nó sẽ không hoạt động:
UIView.animateWithDuration(0.2, animations: {
self.blurBg.alpha = 1
}, completion: {
self.blurBg.hidden = true
})
Tính năng tự động hoàn thành cung cấp cho tôi completion: ((Bool) -> Void)?
nhưng không chắc chắn về cách làm cho nó hoạt động. Cũng đã thử với tính năng đóng dấu nhưng gặp lỗi tương tự:
! Could not find an overload for 'animateWithDuration that accepts the supplied arguments
Cập nhật cho 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#>
})
Tôi không sử dụng dấu đóng cuối cho khối hoàn thành vì tôi nghĩ nó thiếu rõ ràng, nhưng nếu bạn thích nó thì bạn có thể xem câu trả lời của Trevor bên dưới .