Swiftui 变色动画

Swiftui 变色动画,swiftui,Swiftui,我试图在一些文本上设置颜色变化的动画,但我似乎无法使其逐渐改变。我尝试了隐式和显式动画,如下面的代码所示,但没有骰子 struct Example: View { @State var showing = false var body: some View { VStack { Text("test text").foregroundColor(showing ? .red : .blue) .a

我试图在一些文本上设置颜色变化的动画,但我似乎无法使其逐渐改变。我尝试了隐式和显式动画,如下面的代码所示,但没有骰子

    struct Example: View {

    @State var showing = false

    var body: some View {
        VStack {
            Text("test text").foregroundColor(showing ? .red : .blue)
                .animation(.easeIn(duration: 2))
            Button(action: toggle) {
                Text("Toggle")
            }
        }
    }

    func toggle() {
        withAnimation(.easeIn(duration: 2)) {self.showing.toggle()}
    }

}

谁能给我一些指点吗?

不幸的是,你不能设置
.foregroundColor
的动画。但是,您可以设置
.colorMultiply
的动画。因此,在您的情况下,这将起作用:

struct ColorChangeAnimation:视图{
@国家私有var multiplyColor:Color=.blue
var body:一些观点{
VStack{
文本(“测试文本”)
.foregroundColor(.白色)
.colorMultiply(多色)
按钮(操作:切换){
文本(“切换”)
}
}
}
func toggle(){
带动画(.easeIn(持续时间:2)){
self.multiplyColor=(self.multiplyColor==.red)?。蓝色:。红色
}
}
}

这是否回答了您的问题?