将单元格添加到可见的空UITableView中时会显示白色背景

时间:2019-01-06 03:50:53

标签: ios swift 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

如何在首次创建单元格时使其清晰可见?

1 个答案:

答案 0 :(得分:0)

尝试在单元格显示时设置单元格或tableView backgroundColor。

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

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