1

当我在 TextField 中键入内容时,我试图确保在整个动态文本视图中具有一致的动画。

import SwiftUI

struct ContentView: View {
    @ObservedObject var viewModel = ContentViewModel()
    
    var body: some View {
        VStack {
            HStack {
                Text("Write this word: ")
                Text(String(viewModel.textValue))
            }
            
            TextField("Write here:", text: $viewModel.enteredTextValue)
                .padding(10)
                .border(Color.green, width: 1)
            
            Text(viewModel.enteredTextValue)
                .animation(.easeIn(duration: 0.5)) // added animation here.
            
            Toggle(isOn: $viewModel.textsMatch) {
                Text("Matching?")
            }
            .disabled(true)
            .padding()
        }.padding()
    }
}

class ContentViewModel: ObservableObject {
    @Published var textValue: String = "Hello"
    @Published var enteredTextValue: String = "" {
        didSet {
            textsMatch = (enteredTextValue == textValue)
        }
    }
    @Published var textsMatch: Bool = false
}

在此处输入图像描述

注意动画在第一行是平滑的,然后在第二行下降?

请对此提供任何帮助。

FYI 代码取自此处(组合框架)。

非常感谢!

4

0 回答 0