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

Posted

技术标签:

【中文标题】SwiftUI:如何更改 TabbedView 中所选项目的图像【英文标题】:SwiftUI: How to change the image for a selected item in TabbedView 【发布时间】:2019-07-22 06:45:22 【问题描述】:

有没有什么方法可以改变 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】:

您可以使用条件/三元运算符并根据$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)
        
    

【讨论】:

以上是关于SwiftUI:如何更改 TabbedView 中所选项目的图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 SwiftUI 的 TabbedView 切换到其他选项卡时查看内容不显示

SwiftUI TabbedView 只显示第一个选项卡的内容

Xamarin 表单 - 如何在 TabbedView (iOS) 上自定义 VoiceOver

值更改时如何在 UIKit 中更新 SwiftUI 视图?

如何在 SwiftUI 中使用 CoreData 更改数据值?

如何在 SwiftUI 中动画/过渡文本值更改