微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 SwiftUI 中向 TabItem 标签添加突出显示

如何解决如何在 SwiftUI 中向 TabItem 标签添加突出显示

我有一个带有自定义图标的 TabView - 像这样:

    PastView( settings ).tabItem 
    {
        Image("past")
        Text("Past")
    }.tag(1)

效果很好 - 但只是文本颜色的变化非常微妙 - 哪个标签是“当前”并不明显。我想通过对图像做一些事情来使其更加明显。这些我都试过了

      Image("past").shadow( radius:5 )
      Image("past").border( Color.red,width:8 )
      Image("past").background( Color.green )

但它们都没有任何效果 - 我真的不明白为什么

解决方法

尝试将“.accentColor(.red)”添加到 TabView。

, SwiftUI 中的

TabItem 图像目前自定义非常有限。即使在 UIKit 中,您也会对 ImageView 容器而不是图像本身进行这些更改。

设计选中和未选中版本的图标,然后按如下方式使用它们。您可能还想在资产目录中为暗模式创建不同版本的图标。

@State private var selectedTab = 0
    
    var body: some View {
        TabView(selection: $selectedTab) {
            ViewA()
                .tabItem {
                    selectedTab == 0 ? Image("past-selected") : Image("past-unselected")
                }.tag(0)
            
            ViewB()
                .tabItem {
                    selectedTab == 1 ? // etc ...
                }.tag(1)
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。