【发布时间】:2021-12-08 14:15:24
【问题描述】:
我正在手动绘制导航栏,所以我将屏幕内容放在VStack 中。
除了导航标题,还有一个表格。我正在使用ScrollView+LazyVStack,但是切换到Table并不能解决问题。
这是一个示例代码:
TabView {
VStack {
Text("Title")
ScrollView {
LazyVStack {
ForEach(0..<100, id: \.self) {
Text("cell \($0)")
}
}
}
}.tabItem {
Image(systemName: "1.square.fill")
Text("First")
}
}
在 iOS 14 上,这可以按预期工作:
但在 iOS 15 上,背景始终是透明的:
这个问题似乎与UITabBar的新滚动边缘行为有关,它应该在滚动视图到达末尾时隐藏背景。
我知道我可以使用 UITabBar.appearance().scrollEdgeAppearance 禁用它,但我想找到一种方法让它保持启用状态并正常工作。
【问题讨论】:
-
我不得不假设这只是一个 SwiftUI 错误。可能
LazyVStack不知道它的真实高度,因此它可能不正确地知道终点在哪里? -
不清楚你想要什么 - 它是已知的新外观默认行为,它是已知的解决方案,我们所有人都为 iOS 15+ 所做的,你也知道,所以什么是有问题吗?
-
这似乎是@Asperi 所述的预期行为。您是否尝试过创建自定义导航栏?