我在使块在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#>
})
1
“自动完成为我提供了完成:((Bool)-> Void)?但不确定如何使它起作用”,它的内容恰如其分。这必须是一个带布尔值并返回空值的块。
—
马特2014年
你怎么知道((Bool)-> Void)?是为了?由于我在ObjC中已经使用过此功能,所以我知道它已经完成了。但是快速的编码员怎么知道?
—
malhal 2014年