0

我想填充一个tableView。

我的数据在数组中

var myDataArray = [DataEntry]()

-type 是一个协议,DataEntry例如:

protocol DataEntry: class {

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

我的数据数组的顺序如下:

idx=0:类别=“Section0”/标题=“Row0”

idx=1:类别=“Section0”/标题=“Row1”

idx=2:类别=“Section0”/标题=“Row2”

idx=3:类别 = “Section1”/标题 = “Row0”

idx=4:类别 = “Section1”/标题 = “Row1”

idx=5:类别=“Section2”/标题=“Row0”

idx=6:类别 = “Section2”/标题 = “Row1”

如何从此 dataArray 填充 tableView ?(当然,section和rows需要根据数组的内容看)

4

1 回答 1

1

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

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

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

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

但我怎么强调都不过分: 这绝不是好的做法,应该完全避免。

于 2017-02-19T21:06:52.683 回答