Swiftui 如何使用swift ui设置从一个文本切换到另一个文本的动画?
我有一个字符串数组。例如[汽车、船、货车] 我如何动画化数组中文本的变化,该数组可以包含更多字符串,以便通过模糊过渡从汽车切换到船,再切换到面包车?这样它就不断地循环这个 我已经有了一个关于如何制作动画的想法,但是我一直在切换文本。 我问了一个问题,为什么文本不在这里切换->Swiftui 如何使用swift ui设置从一个文本切换到另一个文本的动画?,swiftui,Swiftui,我有一个字符串数组。例如[汽车、船、货车] 我如何动画化数组中文本的变化,该数组可以包含更多字符串,以便通过模糊过渡从汽车切换到船,再切换到面包车?这样它就不断地循环这个 我已经有了一个关于如何制作动画的想法,但是我一直在切换文本。 我问了一个问题,为什么文本不在这里切换-> 但是我认为最好写一个关于如何实际切换文本的单独问题。这里有一个可能的解决方案,基于数组设置文本动画。我使用了这个解决方案中的Asperis转换思想 下面是一个可能的解决方案,基于数组设置文本动画。我使用了这个解决方案中的A
但是我认为最好写一个关于如何实际切换文本的单独问题。这里有一个可能的解决方案,基于数组设置文本动画。我使用了这个解决方案中的Asperis转换思想
下面是一个可能的解决方案,基于数组设置文本动画。我使用了这个解决方案中的Asperis转换思想
我已经选择了@davidev-answer。但根据他的回答,这就是我所实施的。干杯我已经选择了@davidev-answer。但根据他的回答,这就是我所实施的。干杯这个问题需要更多关注吗?我看到有人投票决定关闭它?这个问题需要更多关注吗?我看到有人投票决定关闭它?
struct ContentView: View {
var array = ["First", "Second", "Third"]
@State var shortString = true
@State var currentIndex : Int = 0
@State var firstString : String = ""
@State var secondString : String = ""
var body: some View {
VStack {
if shortString {
Text(firstString).font(.title).fixedSize()
.transition(AnyTransition.opacity.animation(.easeInOut(duration:1.0)))
}
if !shortString {
Text(secondString).font(.title).fixedSize()
.transition(AnyTransition.opacity.animation(.easeInOut(duration:1.0)))
}
}
.animation(.default)
.onAppear {
firstString = array[0]
secondString = array[1]
let timer = Timer.scheduledTimer(withTimeInterval: 2.0, repeats: true) { _ in
if (shortString) {
if currentIndex == array.count - 1 {
self.secondString = array[0]
currentIndex = 0
}
else {
self.secondString = array[currentIndex+1]
currentIndex += 1
}
}
else {
if currentIndex == array.count - 1 {
self.firstString = array[0]
currentIndex = 0
}
else {
self.firstString = array[currentIndex+1]
currentIndex += 1
}
}
shortString.toggle()
}
}
}
}