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