【问题标题】:Change TabBar tint in SwiftUI [duplicate]在 SwiftUI 中更改 TabBar 色调 [重复]
【发布时间】:2020-10-10 13:51:42
【问题描述】:

如何在 SwiftUI 中更改 TabBar 的颜色/色调?我可以使用以下方法在初始化时设置一次:

init() {
    UITabBar.appearance().barTintColor = .green
}

var body: some View {
        TabView {
            ...

但稍后,当按下按钮时,我想将颜色更改为不同的颜色。像上面那样简单地更新 UITabBar 的外观()是没有效果的。我想我需要以某种方式“提交”我的更改或将 TabBar 标记为需要更新,但我不确定如何完成。 谢谢

【问题讨论】:

标签: ios swift swiftui uitabbar


【解决方案1】:

这个问题也回答了我的问题:question

解决方案是在我想要改变颜色时强制 TabBar 完全重新加载。我通过将它的 ID 设置为当我想要改变颜色时会改变的东西来做到这一点,所以当这个值改变时,TabBar 的 ID 改变了,整个 TabBar 被重新加载。

【讨论】:

    【解决方案2】:
    struct TabBar: View {
        init() {
            UITabBar.appearance().barTintColor = UIcolor.black
    
        var body: some View {
            TabView {
                HomeView().tabItem {
                    Image(systemName: "house.fill")
                    Text("Home")
                }
                MapView().tabItem {
                    Image(systemName: "mappin.circle.fill")
                    Text("Map")
                }
            }
            .edgesIgnoringSafeArea(.top)
        }
    }
    

    我发现了类似的东西。这里是参考https://www.thetopsites.net/article/58250211.shtml

    【讨论】:

      猜你喜欢
      • 2019-11-28
      • 2019-12-27
      • 1970-01-01
      • 1970-01-01
      • 2020-04-16
      • 2021-03-21
      • 1970-01-01
      • 2010-10-19
      • 2015-04-05
      相关资源
      最近更新 更多