UITableView 中 UISearchController 的背景色

Background color for UISearchController in UITableView

我将 SearchController 的搜索栏以编程方式插入到 UITableView 的 tableHeaderView 中。当我拉起查看搜索栏或刷新 table 时,我会在刷新器 activity 指示器和搜索栏之间看到这种奇怪的深灰色,您可以在下图中看到(此背景即使我删除刷新视图,颜色仍然存在):

tableView.tableHeaderView = searchController.searchBar

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

tableView.backgroundColor = UIColor.redColor()
tableView.tableHeaderView!.backgroundColor = UIColor.redColor()
searchController.searchBar.backgroundColor = UIColor.redColor()
view.backgroundColor = UIColor.redColor()

没有任何效果。这种深灰色不是我在项目中使用的自定义颜色之一,所以我知道我没有手动设置它。一旦我取出 searchController,一切都像以前一样工作:深灰色被其他地方常见的浅灰色所取代。

试试这个:

[searchController.searchBar setBarTintColor:[UIColor blackColor]];
[searchController.searchBar setTintColor:[UIColor whiteColor]];

希望对您有所帮助。

只需设置一个空视图作为 UITableView 的背景视图

[self.tableView setBackgroundView:[[UIView alloc] initWithFrame:CGRectZero]];

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

    self.tableView.backgroundView = [UIView new];

似乎不​​合逻辑,但很有魅力:)

Cameron E 在 Swift 中的正确答案:

tableView.backgroundView = UIView()

请注意 self.tableView.backgroundView = nil 起作用。

尝试改变

的颜色

self.navigationController?.navigationBar = UIColor(红:1,绿:1,蓝:1,alpha:1)