iOS 15根据加载视图的滚动位置设置TabView
的外观。但是,在选项卡栏中切换的视图之间,这似乎不会更新。如何修复此问题以使外观正确更新?
1.打开不滚动内容的选项卡式视图(“无滚动视图”)时,选项卡栏使用透明背景。
1.在导航到具有滚动内容的选项卡式视图(“滚动视图”)之后,使用半透明背景。
1.然而,当回到“无滚动视图”时,半透明背景仍然保留,而不是被透明背景取代。
我确实注意到,当我打开控制中心或应用程序切换器并回来时,外观会正确更新。
复制:
enum Tab {
case scroll
case noScroll
}
struct ContentView: View {
@State var selection: Tab = .noScroll
var body: some View {
TabView(selection: $selection) {
Text("Should have a transparent tab bar")
.tabItem{ Label("No-scroll", systemImage: "xmark.circle") }
.tag(Tab.noScroll)
ScrollView {
VStack(spacing: 10) {
ForEach(0..<100) {_ in
Text("Should have a translucent tab bar")
}
}
}
.tabItem { Label("Scroll", systemImage: "circle") }
.tag(Tab.scroll)
}
}
}
4条答案
按热度按时间balp4ylt1#
8tntrjer2#
这和@科尔的回答逻辑差不多,但我的解决方案是:
使用introspectTabBarController SwiftUI-Introspect
a9wyjsp73#
在更新到XCode 13和iOS 15之后,我也遇到了一些TabView问题,包括不同状态下的栏背景颜色和项目文本和图标颜色。我是这么解决的:
1szpjjfi4#
我有一个类似的问题here,通过在iOS 15中使用这个解决了
描述当可观察的滚动视图滚动到底部时tabBar要使用的外观属性。如果未设置,则将使用standardAppearance。