首页 > 解决方案 > 将单元格添加到可见的空 UITableView 以白色背景显示

问题描述

使用 Xcode 10+、Swift 4+、iOS 11+

我创建了一个简单的搜索视图,顶部有一个 SearchBar,下面有一个 UITableView。

首次显示视图时,表格为空,当用户在搜索栏中输入文本时,我将结果添加到表格中。从功能上讲,一切正常。

接下来,我将主视图背景设为蓝色,并希望整个 TableView 清晰,以便我可以看到背景。

我在“viewDidLoad”中设置了表格视图背景:

myTable.backgroundColor = UIColor.clear

在“cellForRowAt”中,我将单元格背景设置为清除:

var cell:UITableViewCell = UITableViewCell(style: UITableViewCellStyle.subtitle, reuseIdentifier: "cell")
cell.backgroundColor = UIColor.clear
cell.contentView.backgroundColor = UIColor.clear

但是,当搜索返回值并将单元格添加到表中时,它们始终具有白色背景而不是清晰的。

如果我在不清除表格的情况下弹出然后推送搜索视图,则现有表格单元格会以我想要的方式显示(重绘) - 清除。

我也尝试将其添加到“didFinishLaunchingWithOptions”,但它没有帮助:

UITableViewCell.appearance().backgroundColor = UIColor.clear

首次创建单元格时,如何使它们清晰显示?

标签: iosswiftuitableview

解决方案


当单元格将显示时,尝试设置单元格或表格视图背景颜色。

override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
    cell.backgroundColor = UIColor.clear
}

或者您可以覆盖函数setBackgroundView来调试问题。


推荐阅读