首页 > 解决方案 > 为什么 SwiftUI 的 TabView 旋转到横向会跳转到随机选项卡编号?

问题描述

使用 Swift 5.3.2、Xcode 12.4、iOS 14.4、

我正在尝试在 SwiftUI 中制作一个简单的 Page-TabView(参见下面的代码摘录)。

旋转到横向或返回纵向时,出现问题(见视频):

每当我旋转我的 iPhone 时,TabView 都会“跳转”到一个随机的选项卡编号。

为什么是这样 ?

我该怎么做才能让 TabView 在旋转时保持当前的标签号?

(我使用的是 iPhoneX)

此处描述的新 iOS14 TabView 的 PageControl 功能似乎存在更多问题。(也许旋转设备时的“随机标签号”与所描述的布局问题有关)

在此处输入图像描述

import SwiftUI

@main
struct MyApp: App {
    
    var body: some Scene {
        WindowGroup {
            TabView {
                Text("1")
                    .frame(maxWidth: .infinity, maxHeight: .infinity)
                    .background(Color.pink)
                Text("2")
                    .frame(maxWidth: .infinity, maxHeight: .infinity)
                    .background(Color.yellow)
                Text("3")
                    .frame(maxWidth: .infinity, maxHeight: .infinity)
                    .background(Color.green)
                Text("4")
                    .frame(maxWidth: .infinity, maxHeight: .infinity)
                    .background(Color.blue)
            }
            .tabViewStyle(PageTabViewStyle())
        }
    }
}

标签: swiftlandscapetabview

解决方案


推荐阅读