我正在为在 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
}
}
Run Code Online (Sandbox Code Playgroud)
这是为不同设备明确分离视图的可能方法
struct ContentView: View {
var body: some View {
if UIDevice.current.userInterfaceIdiom == .pad {
YourSidebarView()
} else {
YourTabView()
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1023 次 |
最近记录: |