У мене виникають проблеми з тим, щоб блоки працювали на 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#>
})
Я не використовую останнє закриття для блоку завершення, тому що я думаю, що йому не вистачає ясності, але якщо вам це подобається, ви можете побачити відповідь Тревора нижче .