空时在tableView的一部分中添加标签

时间:2019-07-16 00:47:24

标签: swift uitableview

在这里几乎多次问过相同的问题,但是我的问题有点不同,例如,在这里,用户展示了一种处理带有标签的空表视图的好方法

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if self.numberOfRow == 0{
    var emptyLabel = UILabel(frame: CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height))
    emptyLabel.text = "No Data"
    emptyLabel.textAlignment = NSTextAlignment.Center
    self.tableView.backgroundView = emptyLabel
    self.tableView.separatorStyle = UITableViewCellSeparatorStyle.None
    return 0
} else {
    return self.numberOfRow
    }
} 

有一个节时,它可以很好地工作,但是我的问题是,我有两个节,用户可以在它们之间移动单元格,我想要,当其中一个为空时,该节中会出现一个标签,表示它为空。 有人可以修改这种方式吗?还应该重新加载数据以显示此标签,对吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

最简单的方法是,如果该节中没有其他行,则在该节中显示一个常规单元格。

这是一些粗糙的伪代码:

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    let sectionData = data[section]
    return sectionData.isEmpty ? 1 : sectionData.count
}

tableView(tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let sectionData = data[section]
    if sectionData.isEmpty {
        // create plain cell
        cell.textLabel.text = "Nothing to see here"

        return cell
    } else {
        // create and return your normal data cell from the data for the index path
    }
}

另一个选择是显示没有行的任何节的节标题或页脚。