Hi,
On iOS 26 I'm seeing a behavior with the new Liquid Glass tab bar in SwiftUI and I can't tell if it's expected or if there's a supported workaround.
When I switch tabs in a TabView, the floating Liquid Glass tab bar keeps the glass appearance it derived from the previous tab's content. It only refreshes to match the newly selected tab once I scroll the new tab's scroll view — even by a single point. In Apple's own apps (e.g. Home) the bar updates immediately on tab change, which makes me think this isn't intended.
I reduced it to a minimal example — no images, no glassEffect, no NavigationStack, just gradients:
struct ContentView: View {
enum TabID: Hashable { case blue, green, dark }
@State private var selection: TabID = .blue
var body: some View {
TabView(selection: $selection) {
Tab("Blue", systemImage: "drop.fill", value: .blue) { Page(colors: [.blue, .indigo]) }
Tab("Green", systemImage: "leaf.fill", value: .green) { Page(colors: [.green, .teal]) }
Tab("Dark", systemImage: "moon.fill", value: .dark) { Page(colors: [.gray, .black]) }
}
}
}
struct Page: View {
let colors: [Color]
var body: some View {
ZStack {
LinearGradient(colors: colors, startPoint: .top, endPoint: .bottom)
.ignoresSafeArea()
ScrollView {
ForEach(0..<40, id: \.self) {
Text("Row \($0)")
.foregroundStyle(.white)
.frame(maxWidth: .infinity, alignment: .leading)
.padding()
}
}
}
}
}
Steps to reproduce:
- Run on a real device (iPhone 17 Pro Max, iOS 26.5.1, Xcode 26).
- Switch between the three tabs without scrolling.
Expected: the tab bar's glass tint adapts to the destination tab's gradient immediately on switch. Actual: the bar keeps the previous tab's tint until I scroll the new view ~1pt.
What I've already tried (no luck):
- Both the modern Tab API and the legacy .tabItem / .tag style — same behavior.
- Faking a scroll with setContentOffset (animated and non-animated) — doesn't reliably trigger the refresh;
only a genuine user scroll does.
- toolbarBackgroundVisibility(...) and forcing a color scheme — no effect.
Questions:
- Is this a known issue / expected behavior in iOS 26?
- Is there a supported way to make the tab bar re-sample its Liquid Glass backdrop when the selected tab
changes (without requiring a user scroll)?
I've also filed it via Feedback Assistant. Thanks!
Configuration: iPhone 17 Pro Max, iOS 26.5.1, Xcode 26.