我的第一种方法是创建嵌套的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的相关问题.)
总结以上是内存溢出为你收集整理的ios – 如何在Swift中创建类似电子表格的表格?全部内容,希望文章能够帮你解决ios – 如何在Swift中创建类似电子表格的表格?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)