Patrefans
kavsoft from patreon
kavsoft patreon

Recreating iOS 26 Tab Bar Using SwiftUI (Without Liquid Glass) | Supports iOS 16.4+ | Xcode

🕑 Added 2025-07-12 17:53:27 +0000 UTC
Recreating iOS 26 Tab Bar Using SwiftUI (Without Liquid Glass) | Supports iOS 16.4+ | Xcode

Comments

Miroslav Djukic

Ok I figured it out only way to make this work globally is using .toolbar(content: { ToolbarItem(placement: .bottomBar) { TabView() } }) But there is catch, since this is attached outside of NavigationStack .toolbarBackground(.hidden, for: .bottomBar) doesn't work, so I had to reach to UIKit to make background invisible let appearance = UIToolbarAppearance() appearance.configureWithTransparentBackground() // removes blur & color appearance.backgroundColor = .clear // keep it fully clear appearance.shadowColor = .clear // drop top hair‑line UIToolbar.appearance().standardAppearance = appearance // regular UIToolbar.appearance().scrollEdgeAppearance = appearance // when scrolled UIToolbar.appearance().compactAppearance = appearance Hope this helps someone, now whole app is aware and lets scroll content above TabView

Miroslav Djukic

Is there clean way to incorporate this into app that might have complex UI hierarchy lot of NavigationStack views in each "Tab" option so that it doesn't hide content (when scrolling to the bottom). Only way I can think of is using VStack and placing TabBar at the bottom but then we don't have nice scrolling behind it, I tried also .safeAreaInset(edge: .bottom) { } But that also doesn't work since Tab destination views are all wrapped in own NavigationStack or NavigationSplitView containers

thurman tsao

When conditionally showing/hiding the search bar, the indicator's offset is displayed incorrectly because the offset is applied before the active tab switches, causing a width mismatch. Is there a good solution for this?


More Creators