SwiftUI tabbed interface. Customizable replacement for SwiftUI.TabView.
| iOS | macOS |
|---|---|
![]() ![]() |
![]() ![]() |
- Build with vanilla
SwiftUI(no external dependencies). - Replaces
SwiftUI.TabView. - Allows wide customization.
- Supports light and dark mode.
- Tabbar hides below the keyboard, like with vanilla
SwiftUI.TabView.
Add as a dependecy to your project using Swift Package Manager.
Embed in your SwiftUI view:
import SwiftUITabsView
struct ContentView: View {
var body: some View {
TabsView(
tabs: /* [Tab] */,
selectedTab: /* Binding<Tab> */,
barPosition: /* ToolbarPosition */,
ignoresKeyboard: /* Bool */,
frameChangeAnimation: /* Animation? */,
tabsBar: /* @ViewBuilder @escaping ([Tab], Binding<Tab>) -> TabsBar */,
content: /* @ViewBuilder @escaping (Tab) -> TabContent */
)
}
}Check out documentation comments and the included example app.
If your tab's content view is embedded in NavigationView, use tabsBarSafeAreaInset modifier to apply safe area insets that matches the tabs bar:
TabsView(
/* ... */
content: { tab in
NavigationView {
ContentView(for: tab)
.tabsBarSafeAreaInset()
}
}
)Open SwiftUITabsView.xcworkspace in Xcode (≥13.1) for development.
Use ExampleApp-iOS scheme to build and run the iOS example application.
Use ExampleApp-macOS scheme to build and run the macOS example application.
Consider supporting further development and buy me a coffee.
Copyright © 2022 Dariusz Rybicki Darrarski
License: MIT



