Ios 视图动画有时在零时间执行
有时动画执行时没有动画效果(零时间)。 在下面的代码中,有时代码打印“时间=0.0000002”Ios 视图动画有时在零时间执行,ios,swift,ios11,Ios,Swift,Ios11,有时动画执行时没有动画效果(零时间)。 在下面的代码中,有时代码打印“时间=0.0000002” 这是因为在animations块中没有设置任何动画,所以这是一种正常行为。您可以使用以下代码进行验证 let date = Date() self.view.layer.opacity = 0.5 UIView.animate(withDuration: 2.0, animations: self.view.layer.opacity = 1.0 }) { (
这是因为在
animations
块中没有设置任何动画,所以这是一种正常行为。您可以使用以下代码进行验证
let date = Date()
self.view.layer.opacity = 0.5
UIView.animate(withDuration: 2.0, animations:
self.view.layer.opacity = 1.0
}) { (finish) in
print("Time = \(Date().timeIntervalSince(date))")
}
animations
块的目的是在给定的时间为特性的开始值和结束值差异设置动画。一旦属性值达到动画
块中的给定值,它将立即调用完成
块
如果您没有动画,只想在几秒钟后回调,最好使用Timer
或DispatchQueue
例如
Timer(timeInterval: 0.2, repeats: false) { timer in
// Do whatever you want
}
DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
// Do whatever you want
}
Timer(timeInterval: 0.2, repeats: false) { timer in
// Do whatever you want
}
DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
// Do whatever you want
}