我有这个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/

10-10 20:52