Animation 将转换存储为状态的SwiftUI

Animation 将转换存储为状态的SwiftUI,animation,swiftui,state,transition,swiftui-form,Animation,Swiftui,State,Transition,Swiftui Form,我正在尝试实现我自己的视图间转换,单击“后退”按钮将在一个方向上设置转换动画,而单击“下一个”转换将在另一个方向上设置转换动画 struct InputForm: View { ... @Binding var idx: Int let nextTransition = AnyTransition.asymmetric(insertion: .move(edge: .trailing), removal: .move(edge: .leading)) let b

我正在尝试实现我自己的视图间转换,单击“后退”按钮将在一个方向上设置转换动画,而单击“下一个”转换将在另一个方向上设置转换动画

struct InputForm: View {
    ...
    @Binding var idx: Int 
    let nextTransition = AnyTransition.asymmetric(insertion: .move(edge: .trailing), removal: .move(edge: .leading))
    let backTransition = AnyTransition.asymmetric(insertion: .move(edge: .leading), removal: .move(edge: .trailing))
    @State var activeTransition = AnyTransition.asymmetric(insertion: .move(edge: .trailing), removal: .move(edge: .leading))
    var body: some View {
            HStack {
                Button(action: {
                    withAnimation {
                        self.activeTransition = self.nextTransition
                        self.idx -= self.idx == 0 ? 0 : 1
                    }
                }) {
                    Text("Back")
                }.buttonStyle(CoreBasicButtonStyle(color: .mainGray))
                
                Button(action: {
                    withAnimation {
                        self.activeTransition = self.nextTransition
                        self.idx += self.idx == 1 ? 0 : 1
                    }
                }) {
                    Text("Next")
                }.buttonStyle(CoreBasicButtonStyle(color: .mainGray))
            }
        }
        .animation(.easeInOut)
        .transition(activeTransition)
    }
}
出于某种原因,它只使用初始转换,从不更改。SwiftUI能否检测到
.transition
的状态更改