2017-02-19 38 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