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