Цвет фона для UISearchController в UITableView

У меня есть поисковая панель SearchController, вставленная программно в UITableView tableHeaderView. Когда я вытягиваю, чтобы просмотреть панель поиска или обновить таблицу, я получаю этот странный темный серый цвет, который вы можете видеть на следующем изображении, между индикатором обновления и панель поиска (этот цвет фона сохраняется, даже когда я удаляю обновление вид):

enter image description here

tableView.tableHeaderView = searchController.searchBar

Я попытался изменить этот цвет фона всеми возможными способами:

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

Ничего не работает. Этот темно-серый не является одним из пользовательских цветов, которые я использую в своем проекте, поэтому я знаю, что не устанавливал его вручную. Как только я выхожу на searchController, все работает так же, как и раньше: темно-серый заменяется более светлым серым, увиденным повсюду.

Ответы

Ответ 1

Установите UITableView backgroundView в новое бесполезное представление:

    self.tableView.backgroundView = [UIView new];

Кажется нелогичным, но работает как шарм:)

Ответ 2

Правильный ответ Cameron E в Swift:

tableView.backgroundView = UIView()

Обратите внимание, что self.tableView.backgroundView = nil работает не.

Ответ 3

Попробуйте следующее:

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

Надеюсь, что это поможет.

Ответ 4

Просто установите пустой вид в качестве фонового просмотра UITableView

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

Ответ 5

попытаться изменить цвет

self.navigationController?.navigationBar = UIColor (красный: 1, зеленый: 1, синий: 1, альфа: 1)