1

据我了解,SwiftUI 中没有专用的表格视图类。自己创建这样的表的最佳方法是什么?

事实上,我正在为每周计划视图寻找一些不同的东西。我正在尝试构建一个视图,以便项目可以位于两行之间,例如,如果会议在 9:00 和 10:30 之间,会议的表示将溢出 10:00 行到 10 之间的中间假想线:00 和 11:00。

我开始使用 ScrollView 和基本的 HStacks 和 VStacks 以及 Text 控件的定位来构建类似的东西,但我认为必须有一个更好、更可靠和更简单的方法..

创建行和列的代码示例将很有帮助。

4

1 回答 1

1

我猜你正在这里寻找一个列表。List 是 Swift 中 UITableView 的替代品。您可以将整个时间分成每个 1 小时的片段,并在列表中为每个片段显示一行。

要添加会议溢出的表示,您可以将行的子视图的高度设置为时间溢出。例如,如果会议在 10 到 11:30 之间,则 10-11 行将是全高。对于下一行,即 11-12,

heightFactor = timeElapsed/60 行高 = heightFactor * maxRowHeight。

(这里,它将是 30/60 * maxRowHeight = 0.5 * maxRowHeight)。

可以使用 GeometryReader 在代码中调整高度

GeometryReader { geometry in
            VStack(spacing: 0) {
                Text("")
                    .frame(width: geometry.size.width, height: heightFactor * geometry.size.height)//rowHeight is as calculated above
                    .background(Color.yellow)
                Spacer()
            }
        }
于 2020-07-02T05:26:48.430 回答