【发布时间】:2020-02-19 11:23:20
【问题描述】:
我无法在 SwiftUI 中的 ScrollView 下设置背景颜色。当我使用.background(Color.red) 时,背景会被切断,因此它不会进入导航栏并且滚动似乎被破坏了。
我尝试了几个解决方案,但每个都不起作用。
我有一个简单的视图层次结构
NavigationView {
ScrollView([.vertical], showsIndicators: true) {
VStack {
ForEach(0...50, id: \.self) { _ in
Text("Text text")
}
}
}
.navigationBarTitle("Title", displayMode: .large)
}
.navigationViewStyle(StackNavigationViewStyle())
它按预期工作
现在,我想添加背景颜色,我尝试了以下解决方案
1
NavigationView {
ScrollView([.vertical], showsIndicators: true) {
VStack {
ForEach(0...50, id: \.self) { _ in
Text("Text text")
}
}
}
.background(Color.red)
.navigationBarTitle("Title", displayMode: .large)
}
.navigationViewStyle(StackNavigationViewStyle())
结果
2
NavigationView {
ZStack {
Color.red
ScrollView([.vertical], showsIndicators: true) {
VStack {
ForEach(0...50, id: \.self) { _ in
Text("Text text")
}
}
}
.navigationBarTitle("Title", displayMode: .large)
}
}
.navigationViewStyle(StackNavigationViewStyle())
结果
3
NavigationView {
ZStack {
Color.red.edgesIgnoringSafeArea([.all])
ScrollView([.vertical], showsIndicators: true) {
VStack {
ForEach(0...50, id: \.self) { _ in
Text("Text text")
}
}
}
.navigationBarTitle("Title", displayMode: .large)
}
}
.navigationViewStyle(StackNavigationViewStyle())
结果
如何在ScrollView下设置背景色包装在NavigationView中?
// 编辑:
下面的动画呈现了一个理想的效果(它是用 UIKit 制作的)。
【问题讨论】:
-
我也有同样的问题。似乎是另一个 SwiftUI 错误。
-
即使我将 scrollView 放入 ZStack { Color.red, ScrollView } 我也有同样的问题。
-
你找到解决办法了吗?
-
不幸的是,没有。我放弃了 SwiftUI 并切换到了 UIKit。 SwiftUI 不完整,无法在生产中使用...
-
还是不行