2017-02-19 72 views
0

我想填充一個tableView。從單個數組和多個部分填充tableView

我的數據是一個數組內

var myDataArray = [DataEntry]() 

DataEntry型是一種協議,諸如:

protocol DataEntry: class { 

    var idx: Int { get set } 
    var category: String { get set } 
    var title: String { get set } 
} 

我的數據陣列的順序是,例如:

IDX = 0:category =「Section0」/ title =「Row0」

idx = 1:category =「Section0」/ title = 「ROW1」

IDX = 2:類別= 「Section0」/標題= 「行2」

IDX = 3:類別= 「SECTION1」/標題= 「ROW0」

IDX = 4:類別= 「SECTION1」/標題= 「ROW1」

IDX = 5:類別= 「第2節」/標題= 「ROW0」

IDX = 6:類別= 「第2節」/標題= 「ROW1」

如何填充tableView f從這個數據陣列? (當然,部分和行需要根據數組的內容來看)

回答

1

從單個數組中填充節和行不是一個好主意。你已經注意到它過於複雜並且不穩定。

唯一可行的情況是如果你的數組在每個部分總是有相同數量的行(第1節總是3個元素,第2節總是2等)。像這樣,你總是可以知道你的部分開始的偏移量(0代表0部分,3代表1部分等等)。

當且僅當這是你的情況,你可以做到這一點,像這樣

let offsets = [0,3,5] 
let dataEntry = myDataArray[offsets[indexPath.section]+indexPath.row] 

但我不能強調這一點: 這是沒有辦法很好的做法,應避免共。

+0

謝謝你的解釋!不幸的是,我的數組並不總是以你描述的形式出現。因此我需要找到另一個解決方案。什麼是好的做法?爲了創建帶有'dequeueReusableCell'和'indexPath.row'和'indexPath.section'的tableView-cells,我需要什麼樣的形式將數據帶入?任何幫助感謝! – iKK