我无法在下面设置背景颜色ScrollView
在 SwiftUI 中。当我使用.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())
result
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())
result
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())
result
下如何设置背景颜色ScrollView
装进NavigationView
?
// edit:
下面的动画呈现了理想的效果(使用UIKit制作)。