UITableView中UISearchController的背景颜色

Rya*_*ski 20 uitableview ios swift uisearchcontroller

我有一个SearchController的搜索栏以编程方式插入到UITableView的tableHeaderView中.当我拉起来查看搜索栏或刷新表格时,我会看到这个奇怪的深灰色,你可以在下面的图片中看到,在复习活动指示器和搜索栏之间(即使我删除了复习器,这种背景颜色仍然存在)视图):

在此输入图像描述

tableView.tableHeaderView = searchController.searchBar
Run Code Online (Sandbox Code Playgroud)

我试过用我能想到的各种方式改变这种背景颜色:

tableView.backgroundColor = UIColor.redColor()
tableView.tableHeaderView!.backgroundColor = UIColor.redColor()
searchController.searchBar.backgroundColor = UIColor.redColor()
view.backgroundColor = UIColor.redColor()
Run Code Online (Sandbox Code Playgroud)

什么都行不通.这个深灰色不是我在项目中使用的自定义颜色之一,所以我知道我没有手动设置它.一旦我拿出searchController,一切都像以前一样工作:深灰色被其他地方看到的浅灰色所取代.

Cam*_*n E 41

将UITableView的backgroundView设置为一个新的无用视图:

    self.tableView.backgroundView = [UIView new];
Run Code Online (Sandbox Code Playgroud)

似乎不合逻辑,但工作就像一个魅力:)


BAP*_*BAP 13

Cameron E在Swift中的正确答案:

tableView.backgroundView = UIView()

请注意,self.tableView.backgroundView = nil不会工作.


小智 9

试试这个:

[searchController.searchBar setBarTintColor:[UIColor blackColor]];
[searchController.searchBar setTintColor:[UIColor whiteColor]];
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.