问题描述
我正在一个项目中,我使用圆形的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 (将#修改为@)