将一个数组划分为两个表视图单元格

时间:2019-04-14 00:26:48

标签: arrays swift uitableview

我有一个数组,我们称它为列表

var list = ["name1", "name2", "name3", "name4", "name5"]

我有两个原型单元,第一个应该在标题中具有数组的第一个索引,第二个应该具有其余的数组

在两个单元格中,我都写了indexPath.row,谁能帮助我如何分割此数组以在两个单元格中使用。

换句话说,我想在表格视图中有5个单元格

具有标识符:“ list1”的单元格1的标题中应包含以下项目= [“ name1”,“ name2”,“ name3”]

具有标识符:“ list2”的单元格2的标题= [“ name4”,“ name5”]中应具有这些项目


override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return list.count
    }

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if let cell = tableView.dequeueReusableCell(withIdentifier: "list1", for: indexPath) as? ListCell {
        cell.list1Title?.text = list[indexPath.row]
        return cell
    } else if let cell = tableView.dequeueReusableCell(withIdentifier: "list2", for: indexPath) as? ListCell {
        cell.list2Title?.text = list[indexPath.row]
        return cell
    }
    return TableViewCell()
}

1 个答案:

答案 0 :(得分:2)

假设您要在表格视图中显示5行,下面将使用单元格“ list1”显示前三个值,并使用单元格“ list2”显示其余值:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if indexPath.row < 3 {
        let cell = tableView.dequeueReusableCell(withIdentifier: "list1", for: indexPath) as! ListCell
        cell.list1Title?.text = list[indexPath.row]
        return cell
    } else {
        let cell = tableView.dequeueReusableCell(withIdentifier: "list2", for: indexPath) as! ListCell
        cell.list2Title?.text = list[indexPath.row]
        return cell
    }
}

当然,这假设您的ListCell同时具有list1Titlelist2Title属性。通常,对于这两种类型,实际上您将有两种不同的单元格类别,这意味着您将使用两种不同的转换,而不是将两者都转换为ListCell