ios 标签栏控制器动画



我正在使用Tab Bar Controller和 pod UICircularProgressRing来制作计时器的动画,当我从计时器控制器切换到第一个控制器并立即返回时,计时器控制器中的动画立即设置为结束。是否可以在后台动画中运行,因此当我切换回动画时,继续运行,就像您只是隐藏和取消隐藏视图一样?

这是一个有问题的 gif。

通过吉菲

编辑 1

这是一个我想如何开始工作的示例 https://giphy.com/gifs/ios-animation-timer-3ohzdGYkzbc1gjnUPe

工作代码:

import UIKit
import UICircularProgressRing
class TimerCountdownViewController: UIViewController {
    @IBOutlet weak var ring: UICircularProgressRingView!
    var currentValue: CGFloat?
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        ring.setProgress(value: currentValue ?? 0, animationDuration: 0.0) { [weak self] in
            self?.ring.setProgress(value: 10.0, animationDuration: 8.0)
        }
    }
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        currentValue = ring.currentValue
    }
}

我发现每次 vc 消失UICircularProgressRing pod 都会ring标记为已完成。诀窍是我每次离开 vc 时都会保存currentValue。回到vc后,我将环的进度设置为旧值,然后我继续进度到maxValue。

您可以在当前值达到最大值时进行animationDuration,以使动画更流畅。

最新更新