小编nor*_*kin的帖子

如何反转 SwiftUI 动画的幻灯片过渡?

我正在开发一系列屏幕,这些屏幕应该在按下按钮时发生变化,并且应该从右向左滑入/滑出。
一切工作正常,除了.slide过渡使其从前缘移入并移出到后缘。(从左到右)
我想反转过渡动画方向而不改变尾随/前导是什么(至少不在应用程序的整个上下文中)。

我尝试将过渡更改为.move(edge: .trailing),但随后视图从同一方向移入和移出。

import SwiftUI

struct ContentView: View {
    enum screens {
        case start, mid, final
    }
    @State var curScreen: screens = .start
    
    func changeScreen() {
        switch curScreen {
        case .start:
            curScreen = .mid
        case .mid:
            curScreen = .final
        case .final:
            return
        }
    }
    
    var body: some View {
        switch curScreen {
        case .start:
            ScreenView(callback: changeScreen, text: "Start")
                .transition(.slide)
        case .mid:
            ScreenView(callback: changeScreen, text: "Mid")
                .transition(.slide)
        case .final:
            ScreenView(callback: {}, text: "Final")
                .transition(.slide)
        } …
Run Code Online (Sandbox Code Playgroud)

iphone ios swift swiftui swiftui-animation

21
推荐指数
1
解决办法
1万
查看次数

标签 统计

ios ×1

iphone ×1

swift ×1

swiftui ×1

swiftui-animation ×1