数据静态表视图的数组



i具有一个静态表视图,该视图由几个部分组成,每个部分都有几行。单元格中的数据相对简单:静态图像(从捆绑包中加载)和带有静态字符串的标签。

我需要实现此表视图的搜索。

无需将静态表视图转换为动态表视图,我将如何实现搜索

我知道如何在动态表视图上实现搜索,并且我尝试了一些事情来生成数组,这些数组是检查数据模型,然后生成搜索结果数组。我尝试在已知的部分和单元格上循环循环,但这不起作用,因为并非所有单元都同时存在于内存中。我尝试使用Scrolltorow并在滚动时捕获它们,但这也不起作用。

(我将有一个IF/else块,显示搜索结果,如果该数组中有任何内容。)

我希望只有一个可用的数组,我可以通过它生成搜索结果。我想避免将表视图转换为某种静态识别的动态黑客系统(命名诸如image_ [row] _ [col]之类的图像,因为这将是添加静态单元格或重新排序的噩梦)。我如何生成一个数组,该数组将是静态表视图中的单元格

编辑:

我有一个似乎是解决方案的东西,但我觉得自己是一个肮脏的程序员。这几乎就像我正在为Singleton工厂写一个Goto。

    self.tableView.isHidden = true
    let numSections = self.tableView.numberOfSections
    for _ in 0..<numSections {
        let newSectionArray = Array<KeyMenuTableViewCell>()
        cells.append(newSectionArray)
    }
    for aSectionIndex in 0..<numSections {
        let numRows = self.tableView.numberOfRows(inSection: aSectionIndex)
        for aRowIndex in 0..<numRows {
            let index = IndexPath(row: aRowIndex, section: aSectionIndex)
            self.tableView.scrollToRow(at: index, at: .bottom, animated: false)
            let cell = self.tableView.cellForRow(at: index) as! KeyMenuTableViewCell
            self.cells[aSectionIndex].insert(cell, at: aRowIndex)
        }
    }
    self.tableView.scrollToRow(at: IndexPath(row: 0, section: 0), at: .top, animated: false)
    self.tableView.isHidden = false

老实说,您的代码片段是一个黑客,您应该在脑海中聆听那个告诉您的小声音。我想能够使用IB编辑表并查看其外观很方便,但是当您需要访问表中的数据时使用静态表是错误的方法抱怨:故事板中存在静态表的细胞数据,并且单元格通常同时并不全部。

为了搜索表,您需要访问数据,而访问数据的最佳方法首先是自己控制数据模型。改变动态桌子没有理由应该"皇家痛苦"。创建一个属性列表或其他合适的文件以包含数据。如果您的表包含图像,请在属性列表中使用图像名称。编辑表仅应只需要更新数据文件。

使用静态表视图时,我的表视图控制器中没有数据模型。

好吧,这就是问题所在。搜索需要搜索数据。即使您将表作为静态表作为静态表,也需要拥有一个数据模型,以便进行一些搜索。

在任何情况下,您都不应尝试搜索表视图,就好像是数据一样。表视图为 view ;数据是模型。您要搜索的需要模型。

最新更新