Swift如何播放和暂停UIBezier动画

问题描述

我正在一个项目中,我使用圆形的UIBezier动画显示倒数计时器。我有一个播放和暂停按钮,可以开始和停止对时间的跟踪,但是动画还在继续。

如何暂停和恢复动画?这是我正在使用的代码段:

func drawCircleAnimation(minutes : Double) {
    let padding = CGFloat(220)
    let height = minuteLabel.frame.height + padding
    let circularPath = UIBezierPath(arcCenter: minuteLabel.layer.position,radius: (height/2),startAngle: -.pi / 2,endAngle: 2 * .pi,clockwise: true)

    progressLayer.path = circularPath.cgPath
    progressLayer.fillColor = UIColor.clear.cgColor
    progressLayer.strokeColor = UIColor(named: K.BrandColors.orange)?.cgColor
    progressLayer.lineCap = .round
    progressLayer.linewidth = 10.0
    progressLayer.strokeEnd = 0
    mainContent.layer.addSublayer(progressLayer)
    
    progressAnimation.tovalue = 1
    progressAnimation.duration = (minutes * 60)
    progressAnimation.fillMode = .forwards
    progressAnimation.isRemovedOnCompletion = true
    progressLayer.add(progressAnimation,forKey: "progressAnim")
    
}
@IBAction func playPauseButton(_ sender: UIButton) {
    exerciseSwitchStack.distribution = .fillEqually
    sender.setTitle("",for: UIControl.State.normal)
    if isTimeRunning == false {
        startTimer()
        resumeAnimation()
        drawCircleAnimation(minutes: Double(workout?.exerciseArr[counter].minuteNum ?? 0))
        sender.setimage(UIImage(named: "pause"),for: UIControl.State.normal)
    }
    else {
        pauseTimer()
        pauseAnimation(minutes: 2)
        sender.setimage(UIImage(named: "play"),for: UIControl.State.normal)
    }
}
@IBAction func playPauseButton(_ sender: UIButton) {
    exerciseSwitchStack.distribution = .fillEqually
    sender.setTitle("",for: UIControl.State.normal)
    }
}

非常感谢您的帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)