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
的状态更改