0

我有一个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 )

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

4

2 回答 2

0

TabItem目前 SwiftUI 中的图像自定义非常有限。即使在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)
        }
    }
于 2021-06-24T04:26:18.543 回答
0

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

于 2021-06-23T22:56:21.927 回答