不同 - UITableViewCells 的重复模式
Different - Repeated Pattern of UITableViewCells
我有一个 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
...
有什么实现方法吗?
将在 cellForRowAtIndexPath
中创建单元格,其中索引路径作为参数传递。使用 indexPath.row
您可以计算出需要使用的细胞类型。
indexPath.row
模 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
}
}
要实现这一点,只需按照以下步骤操作(我假设您已经在故事板中制作了四个原型单元):
- 打开故事板,select 第一个单元格(确保
UITableViewCell
是 selected,而不是它的内容视图)
- 在情节提要右侧的属性检查器中,在标有重用标识符的框中输入自定义标识符以标识此单元格(对于此示例,我我将其命名为 cell1)
- 对其他三个单元格重复此操作(这些后续单元格将具有标识符 cell2、cell3 和 cell4
- 回到
UITableViewDataSource
class,覆盖函数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步提到的函数中,就可以构建和运行。希望这有效!
我有一个 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
...
有什么实现方法吗?
将在 cellForRowAtIndexPath
中创建单元格,其中索引路径作为参数传递。使用 indexPath.row
您可以计算出需要使用的细胞类型。
indexPath.row
模 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
}
}
要实现这一点,只需按照以下步骤操作(我假设您已经在故事板中制作了四个原型单元):
- 打开故事板,select 第一个单元格(确保
UITableViewCell
是 selected,而不是它的内容视图) - 在情节提要右侧的属性检查器中,在标有重用标识符的框中输入自定义标识符以标识此单元格(对于此示例,我我将其命名为 cell1)
- 对其他三个单元格重复此操作(这些后续单元格将具有标识符 cell2、cell3 和 cell4
- 回到
UITableViewDataSource
class,覆盖函数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步提到的函数中,就可以构建和运行。希望这有效!