我有以下看法。
import SwiftUI
struct AppView: View {
@EnvironmentObject var appStore: AppStore
var body: some View {
ZStack {
Color.blue
if .game == self.appStore.appMode {
GameView()
} else if .options == self.appStore.appMode {
OptionsView()
} else {
MenuView()
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想为子视图之间的切换设置动画。我见过一些使用状态作为一个开关的例子,但我依赖的不止一个。我还尝试在子视图中使用onAppear和应用动画onDisappear。这有效,但当视图未显示时,onDisappear不再执行。此外,我想让它适用于所有视图。
有没有办法在不使用多个状态的情况下做到这一点?我只想使用.transition 和.animation。
现在我最好的解决方案是这个。
import SwiftUI
struct AppView: View {
@EnvironmentObject var appStore: AppStore
var body: some View {
ZStack {
Color.blue
if .game == self.appStore.appMode {
GameView()
.transition(.scale)
.zIndex(1) …Run Code Online (Sandbox Code Playgroud)