【发布时间】:2021-11-30 11:02:49
【问题描述】:
在我的应用中,我有 2 个标签。
第一个标签视图有白色背景。
第二个 tabView 有黑色背景。
因此,我想根据所选择的 TabBarItem 更改标签栏样式
选择Tab1时,我希望Tab栏图标颜色为:
selected - black, unselected - grey
当tab2被选中时,我想将颜色改为:
selected - white, unselected - grey
我可以像这样使用accentColor 属性更改图标颜色:
TabView {
FirstTabView()
.tabItem {
Image("tab1").renderingMode(.template)
}
SecondTabView()
.tabItem {
Image("tab2").renderingMode(.template)
}
}.accentColor(.white)
但是当用户点击第二个标签时如何改变图标颜色?
我尝试过类似的方法:
@State private var selection = 0
TabView(selection: $selection) {
FirstTabView()
.tabItem {
Image("tab1").renderingMode(.template)
}
SecondTabView()
.tabItem {
Image("tab2").renderingMode(.template)
}
}.accentColor(selection == 0 ? .black : .white)
但它不起作用
【问题讨论】: