Animation 如何根据TextEditor的更改设置SwiftUI视图的动画';s文本?

Animation 如何根据TextEditor的更改设置SwiftUI视图的动画';s文本?,animation,swiftui,Animation,Swiftui,我的应用程序有一个SwiftUI视图,其中包含一个用于收集日志条目的文本编辑器和一个包含过去条目的列表 当文本编辑器具有非空字符串时,将显示一个按钮来处理条目,将其添加到填充列表的数据中,并重置文本编辑器。目前,每当键入文本时,按钮就会突然出现,我希望能够更平滑地设置动画,可能是通过减弱不透明度或放大按钮。然而,我不知道在哪里进入动画 @State var newEntryString = "" var body: some View {

我的应用程序有一个SwiftUI视图,其中包含一个用于收集日志条目的文本编辑器和一个包含过去条目的列表

当文本编辑器具有非空字符串时,将显示一个按钮来处理条目,将其添加到填充列表的数据中,并重置文本编辑器。目前,每当键入文本时,按钮就会突然出现,我希望能够更平滑地设置动画,可能是通过减弱不透明度或放大按钮。然而,我不知道在哪里进入动画

   @State var newEntryString = ""
    
    var body: some View {
        NavigationView{
            VStack{
                Text("Create a new log entry.")
                    .padding()
                TextEditor(text: $newEntryString)
                    .cornerRadius(3.0)
                    .padding()
                    .border(Color.gray, width: 1)
                    .frame(minWidth: 0, idealWidth: 100, maxWidth: .infinity, minHeight: 0, idealHeight: 100, maxHeight: 150, alignment: .center)
                                
                HStack {
                    Spacer()
                    if !newEntryString.isEmpty{

                        Button(action: {
                            addEntry()
                        }) {
                            Text("Add Entry")
                        }.buttonStyle(JournalButtonStyle())
                        .animation(Animation.default.speed(1))
                    }
                }
                
                Divider()
                
                List {
                    ForEach(entrys) { item in
                        Text(item.timestamp!, formatter: entryFormatter).font(.footnote)
                            .foregroundColor(.gray)
                            .padding(.bottom, -10)
                        Text((item.entryString!))
                    }
                    .onDelete(perform: deleteEntrys)
                }.onTapGesture {
                    UIApplication.shared.endEditing()
                }

在容器上使用动画,如

HStack {
    Spacer()
    if !newEntryString.isEmpty{

        Button(action: {
            addEntry()
        }) {
            Text("Add Entry")
        }.buttonStyle(JournalButtonStyle())
    }
}.animation(Animation.default.speed(1))     // << here !!
HStack{
垫片()
if!newEntryString.isEmpty{
按钮(操作:{
附录()
}) {
文本(“添加条目”)
}.buttonStyle(日志buttonStyle())
}

}.animation(animation.default.speed(1))//T!谢谢你让我走上了正确的道路。它还帮助我理解,我需要将其放置在受动画影响的另一个视图中,并将列表进一步向下。在这两个视图上放置.animation修改器效果很好。