SwiftUI制作一个仅显示一定数量行的列表

时间:2019-12-16 18:40:54

标签: swiftui ios13 swiftui-list

我最近开始使用SwiftUI,到目前为止,它很棒。但是,我迷恋着一个似乎找不到答案的问题。

我正在尝试创建此设计:

What I want to create

如您所见,这里是一个表格视图(列表),其中行内部具有较小的表格视图(列表)。使用IB时,该任务非常简单,但是使用swiftUI时,我似乎无法找到一种方法来将行数限制为仅我需要的数量,或者无法根据行数手动设置列表高度(请牢记这些行的高度也可以是可变的。

到目前为止,我的代码仅包括创建列表并添加2条测试行:

List{
            OrderItemRow()
            OrderItemRow()
        }

但是正如您所看到的,SwiftUI会自动拉伸List来填充所有可用空间。效果: enter image description here

2 个答案:

答案 0 :(得分:1)

如果知道行的高度,可以这样实现:

rowHeight

这将基于rowHeight计算列表的完整大小并限制框架的高度。

请注意,如果行的大小超出useForm,整个计算将被弄乱,您可能会看到一半(或丢失整个)单元格。

答案 1 :(得分:0)

我建议使用ForEach来显示您的订单的列表,并使用嵌套的ForEach来显示订单中的项目的列表。关键是管理要提供给每个ForEach的数据到所需的项目数。