[英]How to animate transitions between child views with slide effect in SwiftUI?
我想使用幻燈片效果為子視圖之間的過渡設置動畫,但我這樣做的方式不起作用。 怎么做才對?
ContentView.swift:
struct ContentView: View {
@EnvironmentObject var session: SessionStore
var body: some View {
Group {
if(self.session.session != nil && (Auth.auth().currentUser?.isEmailVerified)!){
VStack{
Text("Welcome to the app")
Button(action: {session.signOut()}){
Text("Sign Out")
}
}.transition(.move(edge: .trailing))
//also I tried .transition(.slide))
}
if(self.session.session != nil && !(Auth.auth().currentUser?.isEmailVerified)!){
EmailVerificationView()
.transition(.move(edge: .trailing))
}
if(self.session.session == nil){
SignInView()
.transition(.move(edge: .trailing))
}
}.onAppear(perform: {
session.listen()
})
}
}
為此,您需要可動畫的容器。 嘗試使用ZStack
而不是Group
var body: some View {
ZStack {
if(self.session.session != nil && (Auth.auth().currentUser?.isEmailVerified)!){
VStack{
Text("Welcome to the app")
Button(action: {session.signOut()}){
Text("Sign Out")
}
}.transition(.move(edge: .trailing))
//also I tried .transition(.slide))
}
if(self.session.session != nil && !(Auth.auth().currentUser?.isEmailVerified)!){
EmailVerificationView()
.transition(.move(edge: .trailing))
}
if(self.session.session == nil){
SignInView()
.transition(.move(edge: .trailing))
}
}
.animation(.default)
.onAppear(perform: {
session.listen()
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.