我希望在 Swift UI 中创建全屏可 ScrollView 。将 View 放入 ScrollView 和垂直堆栈后,我在使 View 全屏显示时遇到问题吗?有什么建议么?
这就是我的代码的样子
struct ContentView : View {
var body: some View {
//var posts = [Post(postColor: .red), Post(postColor: .blue), Post(postColor: .green)]
ScrollView(.vertical, showsIndicators: false) {
VStack {
Post(postColor: .red)
Post(postColor: .blue)
Post(postColor: .green)
}
}
}
}
struct Post : View {
var postColor : Color
var body : some View {
VStack(alignment: .leading) {
HStack {
Text("Name")
.font(.title)
.fontWeight(.heavy)
Spacer()
}
Text("@Username")
.lineLimit(nil)
.font(.body)
Spacer()
}.background(postColor)
}
}
图片 This is the output I have after embedding in a scrollview.
最佳答案
您可以使用GeometryReader
来实现此目的:
struct FullScreenViewsInScrollView: View {
var body: some View {
GeometryReader { geometry in
ScrollView {
VStack(spacing: 0) {
Rectangle()
.foregroundColor(.red)
.frame(height: geometry.size.height)
Rectangle()
.foregroundColor(.blue)
.frame(height: geometry.size.height)
Rectangle()
.foregroundColor(.green)
.frame(height: geometry.size.height)
}
}
}
}
}
结果应该是(我在实时预览中向下滚动了一点):
关于ios - 可快速滚动全屏 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59674291/