SwiftUI在TabbedView上设置了文本和图像

时间:2019-06-07 05:11:30

标签: ios swift swiftui

TabbedView的{​​{3}}中,您可以使用LayoutView来添加文本视图和图像视图。我在任何地方都找不到对LayoutView的引用。

这有效:

.tabItemLabel(Image("image"))

这可行:

.tabItemLabel(Text("image"))

如何像UITabBarItem一样显示两者?

3 个答案:

答案 0 :(得分:2)

使用以下代码在TabbedView

中设置图像和文本

有关更多信息,请参见此帖子https://forums.developer.apple.com/thread/117472

TabbedView {
            tabOne()
                .tabItemLabel {
                    Image(systemName: "image1")
                    Text("Tab 1")
            }
            tabTwo()
                .tabItemLabel {
                    Image(systemName: "image2")
                    Text("Tab 2")
            }
        }

答案 1 :(得分:2)

在Xcode Beta 3中,此问题已修复。这是一个例子。

.tabItem {
    Image(systemName: "circle")
    Text("Hello")
}

答案 2 :(得分:1)

iOS & iPadOS 13 Beta 2 Release Notes中有一种解决方法:

  

解决方法:将传递给修改器的视图包装在 VStack 中:

MyView()
    .tabItemLabel(VStack {
        Image("resourceName")
        Text("Item")
    })

请注意,它适用于我使用本地图像但不适用于SF符号(例如Image(systemName: "clock.fill")无效)的情况。


更新:

此问题已通过 Xcode 11 beta 3 修复。 tabItemLabel重命名为tabItem,可以像下面这样使用:

.tabItem {
    Image(systemName: "plus")
    Text("Tab1")
}