📅  最后修改于: 2023-12-03 15:01:26.345000             🧑  作者: Mango
在iOS开发中,我们通常使用TableView展示大量数据。有时候我们的数据源并不是完整的,可能会存在一些空白的单元格。对于这种情况,我们可以通过以下两种方式来隐藏空单元格。
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中的空单元格。根据不同的需求,选择合适的方式来解决问题。