我在SwiftUI中有一个滚动视图,我不想剪切滚动时超出界限的内容。在UIKit中,我们可以通过为滚动视图将clipsToBounds设置为false来实现这一点。您如何在SwiftUI中做同样的事情。或者在SwiftUI中实现类似行为的最佳实践是什么?
顺便说一句,我知道我们可以使用UIViewRepresentable来映射UIKit视图,或者如果我们使用一些库(比如SwiftUI-回顾 ),我们可以获得底层的UIKit滚动视图,并将clipsToBounds设置为false。但是我想知道是否有一种本地的SwiftUI方法来实现它。
这是一些代码,可以使问题更加清楚。
struct MyScrollView: View {
var body: some View {
VStack(spacing: 0) {
header
content
}
}
var header: some View {
Text("Header")
.padding()
.frame(minHeight: 200)
}
var content: some View {
ScrollView {
Text("Content").padding()
Text("Content").padding()
Text("Content").padding()
Text("Content").padding()
Text("Content").padding()
}
.frame(maxWidth: .infinity)
.background(.orange)
}
} 这就是它呈现的内容,滚动视图内容是在我向上滚动时剪裁的。

我正在寻找的是这样的,我应该能够看到标题下的内容,因为我滚动。

(预先谢谢:)
发布于 2022-04-27 14:33:18
编辑:使用堆栈并将空标题添加到滚动视图中:
struct MyScrollView: View {
var body: some View {
ZStack {
content
VStack {
header
Spacer()
}
}
}
var header: some View {
Text("Header")
.padding()
.frame(minHeight: 200)
}
var content: some View {
ScrollView {
Spacer()
.frame(height:200)
Text("Content").padding()
Text("Content").padding()
Text("Content").padding()
Text("Content").padding()
Text("Content").padding()
Text("Content").padding()
Text("Content").padding()
Text("Content").padding()
Text("Content").padding()
}
.frame(maxWidth: .infinity)
.background(.orange)
}
}https://stackoverflow.com/questions/72027895
复制相似问题