SwiftUI
标准的TabView
组件缺少来自UIKit
的基本功能,例如在特定屏幕中隐藏TabBar
。 RSTabBar
旨在修复这个问题,同时保持与原始TabBar
相同的外观和感觉。
RSTabBar 可以通过 Swift Package Manager 获得
Xcode > File > Swift Packages > Add Package Dependency > https://github.com/rursache/RSTabBar
以下视图将有 2 个自定义选项卡,每个选项卡都有它们自己的Text
视图
import SwiftUI
import RSTabBar
struct DemoView: View {
static let tabs = [
TabItem(index: 0, title: "Home", icon: "house", iconSelected: "house.fill"),
TabItem(index: 1, title: "More", icon: "bolt.car")
]
@State var tabBarVisible: Bool = true
@State var tabs = DemoView.tabs
@State var selectedTab: TabItem = DemoView.tabs.first!
var body: some View {
RSTabBar(tabs: $tabs, selectedTab: $selectedTab, tabBarVisible: $tabBarVisible) {
Text("First view")
.font(.title).bold()
.padding()
.tag(self.tabs[0])
Text("Second view")
.font(.title).bold()
.padding()
.tag(self.tabs[1])
}
}
}
隐藏选项卡栏很容易!只需将 tabBarVisible
设置为 false
即可
查看更高级的示例,以了解如何进一步自定义 RSTabBar
TabBar
的安全区域仍然存在,这是有意的。 但是,在某些情况下,您不希望有这种填充。 类似 .padding(.bottom, -40)
的代码将调整或删除该填充。 我不确定我能对此做些什么。如果您在使用中遇到任何问题,请随时提出 issue。 也欢迎提交 Pull requests,因为我还在学习 SwiftUI。
RSTabBar 遵循 MIT 许可证 的条款和条件。