【发布时间】:2020-06-25 08:22:01
【问题描述】:
我正在尝试用我的应用程序中的 5 张图片制作动画。我想单击显示的图像,然后开始通过数组来回播放的动画,并在第一张图片上再次结束/停止。
到目前为止,我已经得到了这个 - 我从 0 循环到 4,然后它一直在 4 和 3 之间循环。
您有什么想法可以解决吗?
谢谢!
struct ContentView: View {
@State private var activeImageIndex = 0
@State private var startTimer = false
let timer = Timer.publish(every: 0.15, on: .main, in: .common).autoconnect()
let myShots = ["MuscleUp1", "MuscleUp2", "MuscleUp3", "MuscleUp4", "MuscleUp5"]
var body: some View {
VStack {
Image(self.myShots[self.activeImageIndex])
.resizable()
.aspectRatio(contentMode: .fit)
.onReceive(self.timer) { time in
if self.startTimer {
if self.activeImageIndex != 4 {
self.activeImageIndex += 1
} else {
self.activeImageIndex -= 1
}
}
}
.onTapGesture {
self.startTimer.toggle()
}
}
.background(Color.blue)
}
}
【问题讨论】:
-
我想SwiftUI: Unable to animate images 中提供的方法会对您有所帮助。
-
谢谢!链接中的解决方案完美!
-
如果推荐的答案有帮助,那么投票给它是一种很好的 SO 公民做法,因此它对其他成员来说变得更加明显。谢谢。