我需要创建类似 excel 的表格电子表格。它们将位于 TableViewController 的单元格中。所以在不同的单元格中会有多个电子表格。示例:
我的第一个方法是创建嵌套的 UICollectionView。然而,它大大减慢了用户界面。似乎使用 UICollectionView 对性能不利。无论如何,这就是我实现它的方式:
let table = UIStackView()
table.axis = .Vertical
table.spacing = 8
let json = JSON(data: jsonNew)
for i in 0..<json["Rows"].count{
let horizontal = UIStackView()
horizontal.axis = .Horizontal
horizontal.spacing = 8
for j in 0..<json["Rows"][i]["Column"].count{
let label = UILabel()
label.text = json["Rows"][i]["Column"][j].string!
label.lineBreakMode = .ByWordWrapping
label.numberOfLines = 0
label.font = label.font.fontWithSize(12)
horizontal.addArrangedSubview(label)
}
table.addArrangedSubview(horizontal)
}
parent.addSubview(table)
return table
问题来了,有没有其他方法可以更好的实现这种表呢?
最佳答案
像您的示例中那样构造的一堆 Collection View 的性能会很差,因为您急切地构造了整个层次结构——根据您的屏幕在可能非常高的表中的位置,垂直方向上没有单元格重用。
自定义 Collection View 布局是实现这一目标的一种自然方式。也许 KEZCollectionViewTableLayout 中的代码可以作为灵感吗?还有 MMSpreadsheetView .
您还可以找到 this blog post有趣。
(有一个关于如何具体完成此 using UICollectionView 的相关问题。)
关于ios - 如何在 Swift 中创建类似电子表格的表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37249979/