如何在TabView选中及加载时设置激活标签的颜色
解决SwiftUI TabView激活标签颜色自定义问题
方法1:通过UITabBar外观全局设置
在视图初始化时配置UITabBar的全局样式,直接指定激活状态的颜色,默认选中的tag=0标签会自动应用该颜色:
struct MainView: View { @State private var selectedTab = 0 // 默认绑定选中第一个标签 init() { // 设置TabBar选中项的图标/文字颜色 UITabBar.appearance().tintColor = UIColor(named: "ColorGreen") // 可选:设置未选中项的颜色 // UITabBar.appearance().unselectedItemTintColor = UIColor.gray } var body: some View { TabView(selection: $selectedTab) { Text("首页") .tabItem { Image(systemName: "house") Text("首页") } .tag(0) Text("我的") .tabItem { Image(systemName: "person") Text("我的") } .tag(1) } } }
方法2:SwiftUI原生修饰符(iOS 15+)
用tint修饰符直接给TabView指定激活颜色,无需全局修改,默认选中标签会自动生效:
struct MainView: View { @State private var selectedTab = 0 var body: some View { TabView(selection: $selectedTab) { Text("首页") .tabItem { Image(systemName: "house") Text("首页") } .tag(0) Text("我的") .tabItem { Image(systemName: "person") Text("我的") } .tag(1) } .tint(Color("ColorGreen")) // 直接设置选中项颜色 } }
关键注意点
- 确保
Color("ColorGreen")已在Assets.xcassets中正确创建,否则会显示系统默认颜色。 - 不要直接给
tabItem加.foregroundColor(),TabView的标签颜色由tint或UITabBar的tintColor统一控制,单独设置会报错。
内容的提问来源于stack exchange,提问作者SLE
相关产品推荐
相关产品推荐

