我正在使用SwiftUI绘制一张表格,其中行数和列数太多,无法适应屏幕的宽度/高度。在这种情况下,我无法将视图对齐为前导,但它总是居中。如何将它们对齐到顶部前导位置? 以下是绘制表格的视图:
struct TableView: View {
let columnCount: Int = 9
let rowCount: Int = 14
var body: some View {
VStack(alignment: .leading, spacing: 20) {
ScrollView([.vertical, .horizontal], showsIndicators: false) {
GridStack(rows: self.rowCount, columns: self.columnCount) { row, col in
Text("ROW \(String(row)) COL \(String(col))")
.frame(width: 120)
}
}
}
}
}
这是GridStack:
struct GridStack<Content: View>: View {
let rows: Int
let columns: Int
let content: (Int, Int) -> Content
var body: some View {
VStack(alignment: .leading) {
ForEach(0 ..< rows) { row in
HStack(alignment: .top) {
ForEach(0 ..< self.columns) { column in
self.content(row, column)
}
}
}
}
.padding([.top, .bottom], 20)
}
init(rows: Int, columns: Int, @ViewBuilder content: @escaping (Int, Int) -> Content) {
self.rows = rows
self.columns = columns
self.content = content
}
}
这是应用程序的显示效果。注意边缘不适合屏幕。即使我试图滚动,它也会反弹回来。
offset
重命名为offsetX
,并创建了一个offsetY
。因此,如果行和列都太大而无法适应视图,我也可以为 y 轴分配偏移量。 - berkabbasoglu