有没有一种简单的方法可以使用 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)
}
}
}