【发布时间】:2023-03-18 19:49:01
【问题描述】:
有没有一种简单的方法可以使用 SwiftUI 获得更可定制的标签栏视图?我主要是从 macOS 的角度询问(尽管适用于任何系统的系统都是理想的),因为标准系统的 macOS 实现存在各种问题:
- 它周围有一个圆形边框,这意味着它在子视图中使用任何类型的背景颜色都很糟糕。
- 它不支持标签图标。
- 在定制方面非常有限。
- 有问题(有时无法按预期切换视图)。
- 看起来很陈旧。
当前代码:
import SwiftUI
struct SimpleTabView: View {
@State private var selection = 0
var body: some View {
TabView(selection: $selection) {
HStack {
Spacer()
VStack {
Spacer()
Text("First Tab!")
Spacer()
}
Spacer()
}
.background(Color.blue)
.tabItem {
VStack {
Image("icons.general.home")
Text("Tab 1")
}
}
.tag(0)
HStack {
Spacer()
VStack {
Spacer()
Text("Second Tab!")
Spacer()
}
Spacer()
}
.background(Color.red)
.tabItem {
VStack {
Image("icons.general.list")
Text("Tab 2")
}
}
.tag(1)
HStack {
Spacer()
VStack {
Spacer()
Text("Third Tab!")
Spacer()
}
Spacer()
}
.background(Color.yellow)
.frame(maxWidth: .infinity, maxHeight: .infinity)
.tabItem {
VStack {
Image("icons.general.cog")
Text("Tab 3")
}
}
.tag(2)
}
}
}
【问题讨论】:
标签: macos swiftui tabview nstabview