我有这个UIButton扩展(我用它来设置按钮的动画):
func pulsate() {
let pulse = CASpringAnimation(keyPath: "transform.scale")
pulse.duration = 0.3
pulse.fromValue = 0.95
pulse.toValue = 1.05
pulse.autoreverses = true
pulse.repeatCount = 3
pulse.initialVelocity = 0.5
pulse.damping = 1.0
layer.add(pulse, forKey: "pulse")
}
我试着用这个函数来制作动画序列。。。:
private func onInactivityDetected() {
for i buttonsOutlet.indices {
buttonsOutlet[i].flash()
}
}
... 它可以工作,但相反,要使一个序列所有的按钮都在同一时间闪烁。
所以,我想找出一种方法让它们按顺序闪烁,比如button1、button2、button3等等,但不确定是否需要使用完成处理程序或其他方法?有人能帮我做这个吗?
最佳答案
你能试试吗
private func onInactivityDetected() {
for i buttonsOutlet.indices {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3 * Double(i) ) {
self.buttonsOutlet[i].flash()
}
}
}
关于swift - Swift中的UIButton动画序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50454201/