You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Swift中如何实现圆形进度条动画的重置功能?

要完成动画重置功能,你需要在resetAnimation方法中补充以下操作:

  • 移除之前绑定到shapeLayer上的strokeEnd动画,清除动画残留
  • 重置shapeLayer的计时相关属性,消除暂停/恢复操作带来的属性修改影响
  • 将shapeLayer的strokeEnd属性重置为初始值(通常为0,对应进度条为空的状态)
  • 若你的timer为可选类型,将失效后的timer置为nil避免野指针问题

完整的实现代码如下:

func resetAnimation() {
    timer.invalidate()
    // 若timer声明为可选类型,需加此行
    timer = nil
    
    // 移除指定的进度动画
    shapeLayer.removeAnimation(forKey: "basicAnime")
    
    // 重置layer的计时状态,恢复默认值
    shapeLayer.speed = 1.0
    shapeLayer.timeOffset = 0.0
    shapeLayer.beginTime = 0.0
    
    // 重置进度条显示到初始状态
    shapeLayer.strokeEnd = 0.0
}

补充说明:如果你的圆形进度条初始strokeEnd不是0,把最后一行的赋值改为你对应的初始值即可。重置完成后再调用startAnimation即可重新开始完整的进度动画。

内容的提问来源于stack exchange,提问作者forrest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:48:04