SwiftUI: 如何在TabbedView中更改所选项目的图像

16

在SwiftUI的TabbedView中,有没有办法在选中或未选中时更改选项卡项的图像?

TabbedView(selection: $selection) {
  Text("Home").tabItem {
    Image(systemName: "house")
    Text("Home")
  }.tag(0)

  Text("Away").tabItem {
    Image("away")
    Text("Away")
  }.tag(1)
}

我尝试在网络上搜索但没有找到答案。 我正在使用Xcode 11 beta 4。

1个回答

42

您可以使用条件/三元运算符,根据$selection渲染图像。

参见示例:

struct ContentView: View {
    @State private var selection = 0

    var body: some View {
        TabView(selection: $selection) {
            Text("Home")
                .tabItem {
                    selection == 0 ? Image(systemName: "house.fill") : Image(systemName: "house")
                    Text("Home")
                }
                .tag(0)

            Text("Away")
                .tabItem {
                    selection == 1 ? Image(systemName: "a.circle.fill") : Image(systemName: "hand.raised.fill")
                    Text("Away")
                }
                .tag(1)
        }
    }
}

你在哪里改变了选择状态? - luizv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接