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

6
我想做类似于iOS 13中“照片”和“播客”应用程序中所做的事情。
这两个应用程序都有一个额外的视图附加到选项卡栏。在“照片”应用程序中,它是第二行导航,类似于子菜单,并且仅存在于一个选项卡中。在“播客”应用程序中,它是一个缩小的播放器,并且在所有选项卡中都可用。
当使用SwiftUI时,我可以选择哪些选项来实现这样的操作?是否有一种方法将额外的视图附加到选项卡栏?或者应该在每个tabItem内使用ZStack,并在每个ZStack中复制我的额外视图?

Screenshot from Photos app in iOS 13.2.3

Screenshot from Podcasts app in iOS 13.2.3


阅读此处所有内容(!)https://dev59.com/Srjoa4cB1Zd3GeqPHfAi#60136275#60136275 - LetsGoBrandon
1个回答

8
你可以在持久化视图(如TabBar、NavigationView等)上使用.overlay修改器,例如:
TabView { ,,, }
.overlay(
    Rectangle()
    .foregroundColor(.red)
    .frame(width: 40, height: 40)
)

当然需要正确配置!这只是一个演示,展示如何拥有持久视图。

此外,您可以定义自己的自定义 修饰符 并将其应用于选项卡栏。 重要的唯一事情 是将其应用于持久 视图 上。因此,您不需要在每个视图中复制额外的视图。


1
我使用这个非常成功地实现了自定义底部选项卡按钮。许多其他解决方案都有很多开销。谢谢! - LordParsley
3
怎样将视图发送到底部,使其与选项卡栏齐平? - Lylaak
https://dev59.com/Srjoa4cB1Zd3GeqPHfAi#60136275 - LetsGoBrandon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接