我需要像excel一样创建表格电子表格。它们将位于TableViewController的单元格中。因此,不同的单元格中会有多个电子表格。例如:
我的第一个方法是创建嵌套的UICollectionViews。然而,它大大减缓了用户界面。似乎使用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
问题是,有没有其他方法可以更好地实现这种表格?
答案 0 :(得分:7)
在您的示例中构建的一堆集合视图将具有可怕的性能,因为您急切地构建整个层次结构 - 根据您的屏幕在可能非常高的表中的位置,垂直没有单元重用。
自定义集合视图布局将成为实现此目的的一种自然方式。也许KEZCollectionViewTableLayout中的代码可以作为灵感来源?还有MMSpreadsheetView。
您可能还会发现this blog post有趣。
(关于如何具体完成此项using UICollectionView,存在相关问题。)