簡體   English   中英

數組數據靜態表視圖

[英]Array of data static table view

我有一個靜態表視圖,該視圖由幾個部分組成,每個部分都有幾行。 單元格中的數據相對簡單:一個靜態圖像(從包中加載)和一個帶有靜態字符串的標簽。

我需要實現對該表視圖的搜索。

無需將靜態表視圖轉換為動態表視圖, 如何實現搜索

我知道如何在動態表視圖上實現搜索,並且我嘗試了一些方法來生成檢查數據模型所必需的數組,該數據模型隨后將生成搜索結果數組。 我嘗試對已知數量的節和單元進行循環,但這不起作用,因為並非所有單元都同時存在於內存中。 我嘗試使用scrollToRow並在滾動時捕獲了它們,但這也不起作用。

(如果該數組中有任何內容,我將有一個if / else塊顯示搜索結果。)

我希望只提供一個可用的數組,通過它可以生成搜索結果。 我想避免將表視圖轉換為某種靜態標識的動態hack系統(將圖像命名為image_ [row] _ [col]之類的東西,因為這將是添加靜態單元格或對其進行重新排序的噩夢)。 我如何生成一個將成為靜態表視圖中單元格的數組

編輯:

我有一個解決方案,但是我感覺自己像個骯臟的程序員。 幾乎就像我在為Singleton Factory寫一個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

使用靜態表格視圖可以執行搜索過濾時,表格視圖控制器中沒有數據模型。

好吧,這就是問題所在。 搜索需要數據進行搜索。 即使將表保留為靜態表,也需要具有數據模型才能進行搜索。

在任何情況下,您都不應試圖像搜索數據一樣搜索表視圖。 表格視圖是view ; 數據是模型 您要搜索的內容必須是模型。

坦白地說,您的代碼段是一種hack,您應該聽清楚自己腦子里的聲音。 我想能夠使用IB來編輯表並查看其外觀很方便,但是由於需要訪問表中的數據,因此在需要訪問表中數據時使用靜態表是錯誤的方法抱怨:靜態表的單元格數據存在於情節提要中,並且通常這些單元格不會同時存儲在所有內存中。

為了搜索表,您需要訪問數據,而訪問數據的最佳方法是首先控制您自己的數據模型。 更改動態表沒有任何理由是“皇家的痛苦”。 創建一個屬性列表或其他合適的文件來包含數據。 如果您的表包含圖像,請在屬性列表中使用圖像名稱。 僅編輯表僅應要求您更新數據文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM