我有一个包含矩形的VStack。矩形上有一个edgesIgnoresSafeArea(.top)视图修饰符,以将其扩展到最高安全区域。
import SwiftUI
struct ScrollViewSafeArea: View {
var body: some View {
ScrollView {
VStack {
Rectangle()
.fill(Color.orange)
.frame(height: 200)
.edgesIgnoringSafeArea(.top)
Spacer()
}
}
.background(Color.green.ignoresSafeArea())
}
}

好的!
但是,当我将其嵌入到ScrollView中时,矩形不再延伸到安全区域。
import SwiftUI
struct ScrollViewSafeArea: View {
var body: some View {
ScrollView {
VStack {
Rectangle()
.fill(Color.orange)
.frame(height: 200)
.edgesIgnoringSafeArea(.top)
Spacer()
}
}
.background(Color.green.ignoresSafeArea())
}
}

我可以在矩形上添加一个负的顶部填充来扩展它通过安全区,但这让我感觉很烦躁。
有人有更好的方法吗?
发布于 2022-09-06 14:29:23
所以我想明白了。我觉得挺蠢的。我没有正确地忽视安全区域。这是我想要做的事情的代码。
import SwiftUI
struct ScrollViewSafeArea: View {
var body: some View {
ScrollView {
VStack {
Rectangle()
.fill(Color.orange)
.frame(height: 200)
Spacer()
}
}
.ignoresSafeArea()
// Need to ignoreSafeArea again on the background color so
// the color extends to the horizontal edges in landscape.
.background(Color.green.ignoresSafeArea())
}
}
struct ScrollViewSafeArea_Previews: PreviewProvider {
static var previews: some View {
ScrollViewSafeArea()
}
}
https://stackoverflow.com/questions/73586371
复制相似问题