提问人:Andrei Herford 提问时间:9/16/2022 最后编辑:Andrei Herford 更新时间:9/16/2022 访问量:179
由于 .accentColor 已弃用,如何在 SwiftUI 中正确设置 TabBarIcon 颜色?
How to set TabBarIcon color correctly in SwiftUI since .accentColor is deprecated?
问:
在 SwiftUI 中更改所选内容的颜色似乎很困难。为了在应用程序的中心位置定义设计,我尝试使用它来执行此操作,但没有任何效果:UITabBarItem
.appearance()
// Only effects the unselected items
UITabBar.appearance().unselectedItemTintColor = .red
// No effect, deprecated in iOS 8(!)
UITabBar.appearance().selectedImageTintColor = .cyan
// Only effects the title, not the icon
UITabBarItem.appearance().setTitleTextAttributes([.foregroundColor: UIColor.green], for: .normal)
// No effect
UITabBar.appearance().tintColor = .red
唯一有效的方法是不使用外观代理,而是使用View
.accentColor
struct MainView: View {
var body: some View {
TabView {
SomeView()
.tabItem {
Label("Main", systemImage: "list.dash")
.tint(.green) // No effect
}
.tint(.yellow) // No effect
}
.accentColor(.orange)
// No effect
//.tint(.red)
}
}
但是,也将被弃用:.accentColor
“accentColor”将在未来的 iOS 版本中被弃用:使用 资产目录的主题色或 View.tint(_:) 代替
在上使用没有效果。 没有外观属性。.tint
TabView
UITabBarItem
tint
如何在不使用 accentColor
的情况下正确设置图标颜色(最好通过外观)
答: 暂无答案
评论