Swiftui Scrollview没有';t以偏移量滚动过去的视图
为了解决更复杂的问题,我创建了以下简单的测试项目:Swiftui Scrollview没有';t以偏移量滚动过去的视图,swiftui,Swiftui,为了解决更复杂的问题,我创建了以下简单的测试项目: struct ContentView: View { var body: some View { ScrollView { ZStack { ForEach(0..<50) { index in Text("Test \(index)") .offset
struct ContentView: View {
var body: some View {
ScrollView {
ZStack {
ForEach(0..<50) { index in
Text("Test \(index)")
.offset(x: 0, y: CGFloat(index * 20))
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct ContentView:View{
var body:一些观点{
滚动视图{
ZStack{
ForEach(0..内容大小是通过ScrollView中视图的大小来计算的。因此,我们唯一能做的就是更改视图的大小
默认情况下,VStack size是其中视图的总大小(实际视图大小)
在这种情况下,我们还可以使用frame()
更改大小。请检查
从VStUp中排列视图,我们可以将它对齐到<代码>上> <代码> < /P>
struct ContentView:View{
var body:一些观点{
ScrollView(){
VStack{
ForEach(0..如果我正确理解了您的意图,那么在这个场景中您根本不需要偏移(SwiftUI的工作方式不同)
滚动视图{
VStack{
弗雷奇(0..使用Vstack代替ZSTACK在这个特定的示例中,我意识到我只是垂直地布置视图,但这并不重要-我试图找出的是如何根据具有偏移量的视图更改内容大小。是否应该根据偏移量值的总和计算内容大小?偏移量如果不更改视图布局,视图将保持在创建时的位置,但在偏移位置渲染;其他视图的帧也不会受到影响。请注意。谢谢。我最终使用填充在ZStack中创建偏移,这正确地更新了边界。
ScrollView {
VStack {
ForEach(0..<50) { index in
Text("Test \(index)") // << use .padding if needed
}
}
}