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
            }
        }
    }