据我所知,没有专用的表视图类可用于 SwiftUI。自己创建此类表的最佳方法是什么?
事实上,我正在寻找一些不同的东西来查看每周时间表。我正在尝试构建一个视图,以便 Item 可以在两行之间,例如,如果会议在 9:00 到 10:30 之间,会议的表示会将 10:00 行溢出到 10:00 到 11:00 之间的中间虚线。
我开始使用ScrollView和基本的HStacks和VStacks以及文本控件的位置来构建类似的东西,但我认为一定有一种更好,可靠和更简单的方法。
创建行的代码示例可能会有所帮助。
我想你在这里寻找一个列表。List 是 Swift 中 UITableView 的替代品。您可以将整个时间划分为每段 1 小时的段,并在列表中为每个段显示一行。
要添加会议溢出的表示形式,您可以将行的子视图的高度设置为时间溢出。 例如,如果会议在 10 到 11:30 之间,则 10-11 行将是全高。对于下一行,即 11-12,
高度系数 = 已用时间/60 行高 = 高度因子 * 最大行高。
(在这里,它将是 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()
}
}