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

oiv*_*vio 5 ios swiftui

我想做一些类似于在 iOS 13 中的照片和播客应用程序中所做的事情。

这两个应用程序都有一个附加到标签栏的额外视图。在照片应用程序中,它是第二行导航,就像一个子菜单,它只出现在一个选项卡中。在 Podcasts 应用程序中,它是一个缩小的播放器,可在所有选项卡中使用。

使用 SwiftUI 时,我有哪些选择可以做这样的事情?有没有办法将额外的视图附加到标签栏?或者应该在每个 tabItem 中使用 ZStack 并在每个 ZStack 中复制我的额外视图?

iOS 13.2.3 中照片应用的屏幕截图

iOS 13.2.3 中播客应用的屏幕截图

Moj*_*ini 8

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

TabView { ,,, }
.overlay(
    Rectangle()
    .foregroundColor(.red)
    .frame(width: 40, height: 40)
)
Run Code Online (Sandbox Code Playgroud)

当然配置正确!这只是一个演示,用于了解如何获得持久视图。

您也可以定义自己的自定义修饰符并将其应用于选项卡栏。这里唯一重要的是将它应用到persistent view. 所以你不需要在每个视图中复制你的额外视图。

  • 如何将视图发送到底部,使其与选项卡栏齐平? (3认同)