gpt4 book ai didi

ios - SwiftUI - 动画计数文本从 0 到 x

转载 作者:行者123 更新时间:2023-12-02 19:14:36 31 4
gpt4 key购买 nike

我想为默认从 0 开始到变量的文本设置动画。

例如,对于 x = 80,我希望我的文本非常快地显示 0 到 80 之间的所有数字,直到达到 80。我找到了带有进度指示器的示例,但我无法将这些方法应用于此。

您对此有什么想法吗?

谢谢,狄奥克拉西斯。

最佳答案

我在这里创建了一个名为 runCounter 的小函数,它绑定(bind)了 counter 变量、start 值、end 值,以及 speed。调用时,它将绑定(bind)变量设置为 start 值,然后启动一个 Timer,它每 speed 秒运行一次并递增计数器直到它到达 end,此时它使 timer 无效。

这个独立示例显示了两个以不同速度运行的计数器,这两个计数器在它们第一次出现时使用 .onAppear() 启动。

struct ContentView: View {
@State private var counter1 = 0
@State private var counter2 = 0

var body: some View {
VStack {
Text("\(self.counter1)")
.onAppear {
self.runCounter(counter: self.$counter1, start: 0, end: 80, speed: 0.05)
}
Text("\(self.counter2)")
.onAppear {
self.runCounter(counter: self.$counter2, start: 0, end: 10, speed: 0.5)
}
}
}

func runCounter(counter: Binding<Int>, start: Int, end: Int, speed: Double) {
counter.wrappedValue = start

Timer.scheduledTimer(withTimeInterval: speed, repeats: true) { timer in
counter.wrappedValue += 1
if counter.wrappedValue == end {
timer.invalidate()
}
}
}
}

关于ios - SwiftUI - 动画计数文本从 0 到 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63845220/

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