小编spa*_*ora的帖子

如何在 SwiftUI 中为视图之间的过渡设置动画?

我有以下看法。

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)

swift swiftui

5
推荐指数
1
解决办法
3807
查看次数

标签 统计

swift ×1

swiftui ×1