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