gpt4 book ai didi

ios - 在指定的时间间隔内在 Swift 中将 Double 从 0 动画化到 1

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:19 25 4
gpt4 key购买 nike

我正在尝试通过进度指示器 (Double) 在指定时间段内连续调用函数,该时间段内应从 0 变为 1。有没有办法在 Swift 中“动画化”这种从 0 到 1 的变化?

更新:

这是我根据 https://github.com/danielgindi/ios-charts 更新饼图数据的代码

internal func animateDataChange(fromDataSet: PieChartDataSet, toDataSet: PieChartDataSet, progress: Double) -> PieChartDataSet {
var dataEntries: [ChartDataEntry] = []
for i in 0..<fromDataSet.yVals.count {
let yValue = (toDataSet.yVals[i].value - fromDataSet.yVals[i].value) * progress + fromDataSet.yVals[i].value
let dataEntry = ChartDataEntry(value: yValue, xIndex: i)
dataEntries.append(dataEntry)
}
let animatedDataSet = PieChartDataSet(yVals: dataEntries, label: "")
return animatedDataSet
}

我想做的是动画化两个数据集之间的变化,变化的进度反射(reflect)在“进度”参数中。我需要继续调用该函数,直到“进度”= 1。

最佳答案

我决定改用 NSTimer,每 0.01 秒将计数器从 0 递增到 1。我知道这可能不是最有效的方法,但它确实有效:

var progress: Double = 0
var timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target:self, selector: Selector("updateProgress"), userInfo: nil, repeats: true)

func updateProgress() {
guard progress <= 1 else {
timer.invalidate()
return
}
progress += 0.01
}

关于ios - 在指定的时间间隔内在 Swift 中将 Double 从 0 动画化到 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34730917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com