Swift

时间:2018-05-21 17:52:14

标签: swift

我有这个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等。我不确定我是否必须使用类似完成处理程序或其他方法的东西?有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

你能试试吗

private func onInactivityDetected() {

        for i buttonsOutlet.indices {

           DispatchQueue.main.asyncAfter(deadline: .now() + 0.3 * Double(i) ) {

            self.buttonsOutlet[i].flash()
         }
      }
 }