SwiftUI - 如何在 运行 时间内更改内部内容后获取 ScrollView 内容高度

SwiftUI - How to get ScrollView Content Height after once the inside content is changed in Run time

当计数值为静态时,我可以根据以下代码打印滚动视图内容高度

struct ContentView: View {

@State var countValue : Int = 1000
    var body: some View {
        ScrollView {
            ForEach(0..<countValue) { i in
                Text("\(i)")
            }
            .background(
                GeometryReader { proxy in
                    Color.clear.onAppear { print(proxy.size.height) }
                }
            )
        }
    }
}

但是当我在运行时更新 countValue 时,我无法打印新的 scrollview contentsize 身高

请参考以下代码

struct ContentCountView: View {

@State var countValue : Int = 100
    var body: some View {
        ScrollView {
            ForEach(0..<countValue, id: \.self) { i in
                HStack{
                    Text("\(i)")
                    Button("update"){
                        countValue = 150
                    }
                }
                
            }
            .background(
                GeometryReader { proxy in
                    Color.clear.onAppear {
                        print(proxy.size.height)
                        
                    }
                }
            )
        }
    }
}

如何获取新的滚动视图内容大小高度?请解释。

proxy.size.height 正在更新,将 print 语句放在 onAppear 中只是将打印限制在它首次出现时。试试这个:

.background(
    GeometryReader { proxy in
         let _ = print(proxy.size.height)
         Color.clear
    }
)