SwiftUI ScrollView无法向下滚动到包含的ZStack的所有内容。
struct TestView: View {
var colors: [Color] = [.red, .orange, .yellow, .green, .mint, .teal, .cyan, .blue, .indigo, .purple, .pink, .brown ]
var body: some View {
ScrollView {
ZStack {
ForEach(0..<10) {i in
RoundedRectangle(cornerSize: CGSize(width: 30, height: 30))
.fill(colors[i])
.frame(width: 300, height: 300 )
.offset(x: 0, y: CGFloat(i) * 200)
}
}
}
}
}
字符串
2条答案
按热度按时间q0qdq0h21#
您遇到的问题是
ZStack
和offset
一起使用造成的。offset
不会调整视图的边框。如果您设置了ZStack
的背景色,您会发现它并不包含所有的矩形。的数据
另外,
ZStack
的默认对齐方式是.center
,这不是您想要的。要解决这个问题,您可以做很多事情。首先,您可以在每个视图中添加垂直填充来代替偏移量。同时设置
ZStack
顶部的对齐方式:字符串
的
mrphzbgm2#
感谢ColdLogic指出了两个关键点:偏移量不会改变ZStack的大小; ZStack的默认对齐方式是居中。因此,使用ScrollView和ZStack偏移量的唯一方法似乎是将框架高度设置为ZStack内容的实际高度。
代码如下:
字符串