我有一个UITableView
,其中有四个不同的自定义UITableViewCell
。我需要按如下方式重复每个单元格类型:
row 0 -> cell1
row 1 -> cell2
row 2 -> cell3
row 3 -> cell4
row 4 -> cell1
row 5 -> cell2
row 6 -> cell3
row 7 -> cell4
row 8 -> cell1
...
任何想法如何实现这一目标?
答案 0 :(得分:1)
要实现这一目标,请按照以下步骤操作(我假设您在故事板中制作了四个原型单元格):
UITableViewCell
,而不是其内容视图)UITableViewDataSource
班级,覆盖函数tableView: cellForRowAtIndexPath
。在此函数中,将indexPath.row
的模数(%)设为4.如果此值为0,则tableView.dequeueReusableCellWithIdentifier("cell1")
如果为1,则替换它与cell2,等等。在代码中,步骤5看起来像这样 -
switch indexPath.row % 4 {
case 0:
let cell = tableView.deqeueReusableCellWithIdentifier("cell1")
case 1:
let cell = tableView.deqeueReusableCellWithIdentifier("cell2")
case 2:
let cell = tableView.deqeueReusableCellWithIdentifier("cell3")
case 3:
let cell = tableView.deqeueReusableCellWithIdentifier("cell4")
}
return cell
只需将此代码放在步骤4中提到的函数中,即可构建并运行。希望这有效!
答案 1 :(得分:0)
要在cellForRowAtIndexPath
中创建单元格,其中索引路径作为参数传递。使用indexPath.row
,您可以计算出需要使用的单元格类型。
indexPath.row
modulo 4给出了单元格编号类型。
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellNumber = indexPath.row % 4
if cellNumber == 0 { // row 0, 4, 8, ...
// create cell1
}
else if cellNumber == 1 { // row 1, 5, 9, ...
// create cell2
}
else if cellNumber == 2 { // row 2, 6, 10, ...
// create cell3
}
else if cellNumber == 3 { // row 3, 7, 11, ...
// create cell4
}
}