将 'badgeValue' 添加到 SwiftUI 中的选项卡项

Adding 'badgeValue' to tab item in SwiftUI

我想知道是否可以将 'badgeValue' 添加到 swiftui 中的标签栏项目。

我曾尝试简单地在所需标签栏项目内的 hstack 中的标签图像旁边添加一个圆形,但无济于事。

TabView{
                   SomeView()
                       .tabItem{

                           VStack{

                             HStack{
                               Image(systemName: "camera.viewfinder")
                               Image(systemName: "circle") //neither image appears
                              }


                               Text( "View one")
                           }

                   }
                   .tag(0)
}

I want to end up with something like this :

引用TabView:

Tab views only support tab items of type Text, Image, or an image followed by text. Passing any other type of view results in a visible but empty tab item.

如果您仍想继续这样做,我会尝试在其他地方渲染它或使用预生成的项目,可能是 11 个 prerendered 项目(1 到 10 和 10 的图像+) 并将其显示为允许的单个 Image 的内容。

另一种选择是将其动态渲染到 UIImage 中,将 UIImage 放入图像槽中。为此,您或许可以使用 here 中的徽章创建代码。

另一种选择是根据未读项目的数量显示数字图像,希望用户能够理解什么是 ment。

在 iOS 15 中,您可以使用原生徽章修饰符:

TabView {
    SomeView()
        .tabItem {
            ....
        }
        .badge($unreadNotifications)
}