我正在为在 iPhone 和 iPad 上运行的 iOS 开发 SwiftUI 应用程序。我想知道是否可以在 iPhone 上显示标签栏,但在 iPad 上显示垂直侧边栏以更好地利用大屏幕。标签栏和侧栏将具有相同的功能,在标签之间切换。它可能看起来像我在 twitter 上找到的这张图片,除非我不需要它的 macOs 版本。有人可以帮我吗?
您需要添加条件检查,例如以下内容:
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
    }
    
}
这是为不同设备明确分离视图的可能方法
struct ContentView: View {
    var body: some View {
        if UIDevice.current.userInterfaceIdiom == .pad {
            YourSidebarView()
        } else {
            YourTabView()
        }
    }
}
| 归档时间: | 
 | 
| 查看次数: | 1023 次 | 
| 最近记录: |