SwiftUI - 如何在运行时更改内部内容后获取 ScrollView 内容高度
Posted
技术标签:
【中文标题】SwiftUI - 如何在运行时更改内部内容后获取 ScrollView 内容高度【英文标题】:SwiftUI - How to get ScrollView Content Height after once the inside content is changed in Run time 【发布时间】:2021-11-12 10:25:10 【问题描述】:当计数值为静态时,我可以根据以下代码打印滚动视图内容高度
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 时,我无法打印新的滚动视图内容大小 高度
请参考以下代码
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)
)
如何获得新的滚动视图内容大小高度?请解释一下。
【问题讨论】:
这应该会有所帮助 - ***.com/a/65062892/12299030。 这里不解释scrollview内容大小高度,你能解释一下如何获取内容大小高度 【参考方案1】:proxy.size.height
正在更新,将print
语句放入onAppear
只是将打印限制在首次出现时。试试这个:
.background(
GeometryReader proxy in
let _ = print(proxy.size.height)
Color.clear
)
【讨论】:
它很棒,但是如何将这些分配给状态变量。以上是关于SwiftUI - 如何在运行时更改内部内容后获取 ScrollView 内容高度的主要内容,如果未能解决你的问题,请参考以下文章
当我们在文本和图像之间切换按钮内容时,如何停止 SwiftUI 更改固定填充?
SwiftUI:如何更改用户按住导航链接或按钮等内容时发生的颜色变化?