Фон UISearchController не соответствует фону UINavigationBar в iOS 11 - PullRequest
0 голосов
/ 22 мая 2018

Я обновляю старое приложение для поддержки iPhone X, и при обновлении UITableViewController с возможностью поиска фон UISearchController не изменяется при размещении его на панели навигации.

Я использую следующий код для размещения его на панели навигации:

self.navigationItem.searchController = self.searchController;
self.navigationItem.hidesSearchBarWhenScrolling = NO;

searchbar

Проверка интерфейса показываетследующая иерархия: hierarchy

_UIBarBackground, содержащийся в _UINavigationControllerManagedSearchPalette, остается белым.

Есть ли что-то, что я пропустил при создании UINavigationController?

1 Ответ

0 голосов
/ 22 мая 2018

Попробуйте применить цвет фона так же, как цвет оттенка навигационной панели.

searchBar.tintColor = UIColor.white
searchBar.backgroundColor = UIColor.red
searchBar.clearBackgroundColor()

Удалите цвет панели поиска следующим образом:

extension UISearchBar {

    func clearBackgroundColor() {
        guard let UISearchBarBackground: AnyClass = NSClassFromString("UISearchBarBackground") else { return }

        for view in self.subviews {
            for subview in view.subviews {
                if subview.isKind(of: UISearchBarBackground) {
                    subview.alpha = 0
                }
            }
        }
    }
}

с помощью вышеуказанного кода, которого я могу достичьэтот вывод

enter image description here

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...