gpt4 book ai didi

swiftui - GeometryReader 计算 View 的总高度

转载 作者:行者123 更新时间:2023-12-04 03:50:20 28 4
gpt4 key购买 nike

我有一个固定宽度和高度的主 View ,因为这个 View 将被转换为 PDF。接下来,我有一组 subview ,它们将垂直堆叠在主 View 中。可能有更多的 subview 可以容纳在主 View 中,所以我需要一种方法来确保我不超过主 View 的总高度。例如,如果我的数组中有八个 subview ,但只有三个适合主 View ,那么我需要在三个之后停止添加 subview 。其余的 subview 将在新的主 View 上重新开始该过程。
我的问题是,如果我使用 GeometryReader 来获取 View 的高度,首先我必须添加它。但是一旦添加了 View ,再判断它是否超过了可用的总高度就为时已晚。
下面显示了我如何在添加每个 View 时获得它的高度。我知道这没什么好说的,但我很困惑。
更新:
我目前的策略是创建一个临时 View ,我可以在其中添加 subview 并返回一个仅包含适合的数组。

struct PDFView: View {
var body: some View {
VStack {
ForEach(tasks) { task in
TaskRowView(task: task)
.overlay(
GeometryReader { geo in
// geo.size.height - to get height of current view
})
}
}
.layoutPriority(1)
}
}
enter image description here

最佳答案

您可以在一处获取总高度,如下所示:

   VStack {
ForEach(tasks) { task in
TaskRowView(task: task)
}
}
.overlay(
GeometryReader { geo in
// geo.size.height // << move it here and get total height at once
})

关于swiftui - GeometryReader 计算 View 的总高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64504914/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com