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#>
})
명확성이 부족하다고 생각하기 때문에 완료 블록에 후행 폐쇄를 사용하지 않지만 마음에 들면 아래 Trevor의 답변을 볼 수 있습니다 .