【发布时间】:2020-03-22 15:46:26
【问题描述】:
我正在尝试使用.transition() 对视图进行动画/过渡。我使用来自here 的类似代码并将.transition() 放入两个条件视图。
struct Base: View {
@State private var isSignedIn = false
var body: some View {
Group {
if(isSignedIn){
Home().transition(.slide)
}else{
AuthSignin(isSignedIn: self.$isSignedIn).transition(.slide)
}
}
}
}
struct AuthSignin: View {
@Binding var isSignedIn: Bool
var body: some View {
VStack {
Button(action: {
self.isSignedIn = true
}) {
Text("Sign In")
.bold()
.frame(minWidth: CGFloat(0), maxWidth: .infinity)
.padding()
.background(Color.blue)
.foregroundColor(Color.white)
.cornerRadius(CGFloat(10))
}.padding()
}
}
}
但是,每当我单击“登录”按钮(有或没有.transition())时,应用程序将冻结一秒钟,然后Home() 视图会突然出现,没有任何动画/过渡。我也尝试将self.isSignedIn = true 包装在withAnimation 中,但它仍然无法正常工作。有什么想法或有更好的方法吗?
【问题讨论】:
标签: swift xcode animation transition swiftui