将多个类型的TableViewCell放在同一个表视图中

时间:2015-11-12 13:19:25

标签: swift uitableview

我有一个表视图,当前正在显示在XIB文件中创建的tableViewCell类型,我想在表View中随机显示不同类型的XIB文件。例如就像在随机发布位置的桌面视图中显示广告单元格一样。

我该怎么做?我目前有以下代码用于显示一个Cell:

 func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cardioCell:CardioItemsTableViewCell! = tableView.dequeueReusableCellWithIdentifier("CardioItemsTableViewCell") as? CardioItemsTableViewCell
cardioCell.cellNameLabel.text = "Test String"

return cardioCell!

}

我有一个苹果新闻App的图像,其中一个单元格没有图像。但在我的例子中,单元格完全不同,并且与其他单元格的布局不同。

任何想法都会非常感激。

enter image description here

1 个答案:

答案 0 :(得分:2)

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    if indexPath.row % 2 == 0
        let cardioCell:CardioItemsTableViewCell! = tableView.dequeueReusableCellWithIdentifier("CardioItemsTableViewCell") as? CardioItemsTableViewCell
        cardioCell.cellNameLabel.text = "Cells with even number of row"
        return cardioCell!

    else if indexPath.row % 2 != 0
        let otherTypeCell:OtherTypeTableViewCell! = tableView.dequeueReusableCellWithIdentifier("OtherTypeItemsTableViewCell") as? OtherTypeTableViewCell
        otherTypeCell.cellNameLabel.text = "Cells with odd number of row"
        return otherTypeCell!
}

您无法随机加载单元格。您需要具有某种逻辑,您可以根据该逻辑加载不同类型的tableViewCell。