SwiftUI标签栏上方的额外导航视图

时间:2019-11-23 21:10:18

标签: ios swiftui

我想做的事情与iOS 13中的“照片和播客”应用程序类似。

这两个应用程序的选项卡栏都有一个附加视图。在“照片”应用中,它是导航的第二行,如子菜单,并且仅显示在一个选项卡中。在Podcasts应用中,它是缩小播放器,并且在所有标签中都可用。

在使用SwiftUI时,我有什么选择可以做这样的事情?有没有办法在标签栏上附加视图?还是应该在每个tabItem中使用ZStack并在每个ZStack中复制我的额外视图?

Screenshot from Photos app in iOS 13.2.3

Screenshot from Podcasts app in iOS 13.2.3

1 个答案:

答案 0 :(得分:1)

您可以在持久性.overlay(TabBar,NavigationView等)上使用view修饰符 ,例如:

TabView { ,,, }
.overlay(
    Rectangle()
    .foregroundColor(.red)
    .frame(width: 40, height: 40)
)

当然具有正确的配置!这只是一个演示,以演示如何获得永久视图。

您还可以定义自己的自定义修饰符并将其应用到标签栏。 唯一重要的是将其应用于持久性view。因此,您无需在每个视图中重复您的额外视图。