ios - 如何在 Swift 中创建类似电子表格的表格?

标签 ios objective-c swift

我需要创建类似 excel 的表格电子表格。它们将位于 TableViewController 的单元格中。所以在不同的单元格中会有多个电子表格。示例:

Example spreadsheet

我的第一个方法是创建嵌套的 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/

相关文章:

swift - NSData/Data 存储是否连续?

ios - 如何在应用程序委托(delegate)中更改应用程序语言?

ios - 什么是自动布局中的乘数和常数?

iphone - iOS开发指南中的可能错误

objective-c - 如何在 Objective-c 的宏中定义数组?

ios - 受自动布局约束的动画 View

swift - 切换出嵌入在 NSContainerView 中的 View

ios - 如何找到 ImageView 的半径?

iphone - __dyld_dyld 应用程序启动时出现 fatal error

ios - 如何在 Obj C 中的 UIImageView 顶部绘制横幅