添加';badgeValue';在SwiftUI中设置选项卡项的步骤

添加';badgeValue';在SwiftUI中设置选项卡项的步骤,swiftui,Swiftui,我想知道是否有可能在swiftui的选项卡栏项目中添加“badgeValue” 我尝试过简单地在所需的选项卡栏项内的hstack中沿选项卡图像的一侧添加一个圆形,但没有效果 TabView{ SomeView() .tabItem{ VStack{ HStack{

我想知道是否有可能在swiftui的选项卡栏项目中添加“badgeValue”

我尝试过简单地在所需的选项卡栏项内的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 :

引用:

选项卡视图仅支持文本、图像或后跟文本的图像类型的选项卡项。传递任何其他类型的视图将导致一个可见但为空的选项卡项

如果你还想继续,我会尝试在其他地方渲染它,或者使用预生成的项目,可能是11个预渲染项目(1到10个&一个10+的图像),并将它们显示为单个图像允许的内容

另一个选项是动态地将其渲染为
UIImage
获取
UIImage
并将其放入图像槽中。您可能可以为此使用中的徽章创建代码


另一个选项是根据未读项目的数量显示数字图像,并希望用户能够理解其中的含义。

对于我来说,它显示的是第一个图像,而不是第二个。SwiftUI 3(需要iOS 15)现在有一个
.badge
修改器。如何在swiftUI上下文中使用动态呈现的UIImage方法?这里有多个选项。您可以尝试使用
UIHostingController
显示视图,并通过普通的UIViewController渲染方法进行渲染,也可以尝试普通的UIView->UIImage渲染技术。我打赌还有更多的选择。最简单的方法可能是让某人为您创建预渲染图像,或者使用一些免费的现有图像。计算或叠加两个UIImage所需的时间要少得多。使用多个映像(或根本不使用映像)的问题是,如果使用内置的“着色颜色”属性,则通知和映像本身之间的颜色对比度将丢失。您必须使用清晰的颜色,并为每个选项卡栏项目的不同状态选择/取消选择图像。@eResourcesInc true。另一种方法是在ZView内的选项卡视图顶部渲染图标,但您必须自己计算徽章的位置。