📜  ios tableview 隐藏空单元格 (1)

📅  最后修改于: 2023-12-03 15:01:26.345000             🧑  作者: Mango

iOS TableView 隐藏空单元格

在iOS开发中,我们通常使用TableView展示大量数据。有时候我们的数据源并不是完整的,可能会存在一些空白的单元格。对于这种情况,我们可以通过以下两种方式来隐藏空单元格。

方式一:使用UITableView的属性

UITableView提供了一个名为tableFooterView的属性。当该属性存在时,将会被添加在TableView底部,对于后面无数据的单元格,它们将不再被显示出来。

override func viewDidLoad() {
    super.viewDidLoad()
    
    // 根据需要设置TableView的属性
    self.tableView.tableFooterView = UIView()
}

在上面代码中,我们将TableView的tableFooterView属性设置为空视图。这样对于没有数据的单元格,FooterView将会覆盖它们,使其不再被显示出来。

方式二:使用数据源筛选

另一种方式是在数据源中排除掉空数据。在数据源中移除空数据后,TableView只会显示有效的单元格。

class ViewController: UITableViewController {
    
    var data: [String] = []

    override func viewDidLoad() {
        super.viewDidLoad()

        // 根据需要填充数据源
        self.data = ["Cell1", "", "Cell2", "", "", "Cell3"]
        
        // 移除空数据
        self.data = self.data.filter { !$0.isEmpty }
    }

    // 实现TableView的数据源方法
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.data.count
    }
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
        cell.textLabel?.text = self.data[indexPath.row]
        return cell
    }
}

在上面代码中,首先将数据源填充为包含空单元格的数组。然后在viewDidLoad方法中,使用filter方法将空数据移除掉。最后在TableView的数据源方法中,只返回有数据的单元格。

总结

以上是两种常用的方式来隐藏TableView中的空单元格。根据不同的需求,选择合适的方式来解决问题。