从单个数组数据和多个部分填充tableView

时间:2017-02-19 20:50:43

标签: arrays swift tableview populate indexpath

我想填充一个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:category =“Section0”/ title =“Row2”

idx = 3:category =“Section1”/ title =“Row0”

idx = 4:category =“Section1”/ title =“Row1”

idx = 5:category =“Section2”/ title =“Row0”

idx = 6:category =“Section2”/ title =“Row1”

如何从此dataArray填充tableView? (当然,部分和行需要根据数组的内容来查看)

1 个答案:

答案 0 :(得分:1)

从单个数组中填充部分和行不是一个好主意。你已经注意到它过于复杂而且根本不稳定。

唯一可行的情况是,如果您的数组在每个部分中始终具有相同的行数(第1部分总是3个元素,第2部分总是2,等等)。像这样,你总是可以知道你的部分开始的偏移量(0表示0部分,3表示部分1,依此类推)。

当且仅当这是您的情况时,您可以这样做

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

但我不能强调这一点: 这绝不是一种良好的做法,应该完全避免。