首页 > 解决方案 > SwiftUI - 我可以在 iPhone 上显示标签栏,在 iPad 上显示侧边栏吗?

问题描述

我正在为 iOS 开发一个在 iPhone 和 iPad 上运行的 SwiftUI 应用程序。我想知道是否可以在 iPhone 上显示标签栏,但在 iPad 上显示垂直侧边栏以更好地利用大屏幕。选项卡栏和侧栏将具有相同的功能,在选项卡之间切换。它可能看起来像我在 twitter 上找到的这张图片,但我不需要它的 macOS 版本。谁能帮帮我?

标签: iosswiftswiftui

解决方案


您需要添加条件检查,如下所示:

struct TabSideBar: View {

    #if os(iOS)
    @Environment(\.horizontalSizeClass) private var horizontalSizeClass
    #endif
    
    @ViewBuilder var body: some View {
        #if os(iOS)
        if horizontalSizeClass == .compact {
            TabBarContentView()
        } else {
            SideBarContentView()
        }
        #else //MacOSView
            SideBarContentView()
        #endif
    }
    
}

推荐阅读