ビューに.transition()
を使用して、ビューをアニメート/遷移させるようにしようとしています。私は ここでは から似たコードを使い、両方の条件ビューに.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()
の有無にかかわらずクリックすると、アプリは2秒間フリーズし、次にHome()
ビューがアニメーションなしで突然表示されます。遷移。 withAnimation
では_self.isSignedIn = true
_をラップしようとしましたが、まだ機能しません。どんなアイデアやこれを行うより良い方法はありますか?
Self.isgenedin = trueの前に保持されます