如何设置标签栏颜色?例如,分配黑色结果仅带有灰色条。 这用于SwiftUI。 指定暗模式不适合解决。
struct ContentView: View {
@State private var selection = 1
init() {
UITabBar.appearance().backgroundColor = UIColor.blue
UITabBar.appearance().backgroundImage = UIImage()
//UITabBar.appearance().isTranslucent = false
//UITabBar.appearance().shadowImage = UIImage()
}
var body: some View {
TabView {
ClockView()
.tabItem {
Image("clock")
Text("Clock")
}.tag(0)
PlanetsNowView()
.tabItem {
Image("clock")
Text("Now")
}.tag(1)
SettingsView()
.tabItem {
Image("settings")
Text("Settings")
}.tag(2)
}
.accentColor(.white)
.opacity(1)
//.environment(\.colorScheme, .dark)
}
}
答案 0 :(得分:0)
在初始化程序中添加 UITabBar.appearance()。barTintColor = UIColor.blue 。
但是在Xcode代码帮助中找不到。
struct ContentView: View {
@State private var selection = 1
init() {
UITabBar.appearance().barTintColor = UIColor.blue
UITabBar.appearance().tintColor = .green
}
var body: some View {
TabView (selection:$selection){
Text("The First Tab")
.tabItem {
Image(systemName: "1.square.fill")
Text("First")
}
.tag(1)
Text("Another Tab")
.tabItem {
Image(systemName: "2.square.fill")
Text("Second")
}.tag(2)
Text("The Last Tab")
.tabItem {
Image(systemName: "3.square.fill")
Text("Third")
}.tag(3)
}
.font(.headline)
.accentColor(.white)
}
}
答案 1 :(得分:0)
这是用于在SwiftUI视图中创建黑色标签栏的初始化程序。
import SwiftUI
struct ContentView: View {
init() {
setupTabBar()
}
var body: some View {
TabView {
//Your tab bar items
}
}
}
//MARK: - Tab bar view appearance
extension ContentView {
func setupTabBar() {
UITabBar.appearance().barTintColor = .black
UITabBar.appearance().tintColor = .blue
UITabBar.appearance().layer.borderColor = UIColor.clear.cgColor
UITabBar.appearance().clipsToBounds = true
}
}
如果要根据用户的亮/暗模式设置更改颜色:
现在将有两个彩色正方形,您必须在其中为第一个选择浅色模式颜色,为第二个选择深色模式颜色。
要在初始化标签栏时在代码中使用它,请用新的一组浅色/深色模式颜色的名称更改定义barTintColor的行。
UITabBar.appearance().barTintColor = UIColor(named: "<your color name>")