Я хочу разместить панель поиска в новой навигационной панели с новыми заголовками iOS 11. Однако цвет панели поиска автоматически применяется iOS, и я не могу его изменить.
if #available(iOS 11.0, *) {
let sc = UISearchController(searchResultsController: nil)
navigationItem.searchController = sc
navigationItem.hidesSearchBarWhenScrolling = false
}
В строке поиска есть синий фон, но я хочу изменить его на белый.
Настройка цвета фона приводит к следующему:
navigationItem.searchController?.searchBar.backgroundColor = UIColor.white
Я пробовал также setScopeBarButtonBackgroundImage
и setBackgroundImage
в строке поиска, но все выглядит совершенно странно.
Также, когда я запускаю поиск, нажав на строку поиска, он переключается в режим с кнопкой отмены справа. ( "Аббречен" на немецком языке)
И цвет текста "Аббречен" также не может быть изменен. (нужен он также белый)
Любая помощь приветствуется.
Изменить: в соответствии с запросом здесь приведен код для стилизации панели навигации:
self.navigationBar.tintColor = UIColor.myWhite
self.navigationBar.titleTextAttributes = [NSAttributedStringKey.foregroundColor : UIColor.myWhite, NSAttributedStringKey.font: UIFont.myNavigationBarTitle()]
self.navigationBar.barTintColor = UIColor.myTint
if #available(iOS 11.0, *) {
self.navigationBar.prefersLargeTitles = true
self.navigationBar.largeTitleTextAttributes = [NSAttributedStringKey.foregroundColor : UIColor.myWhite, NSAttributedStringKey.font: UIFont.myNavigationBarLargeTitle()]
}
Текущий результат: Я использовал идею Круналов, чтобы установить цвет фона панели поиска, но затем закругленные углы теряются. После повторной настройки закругленных углов анимация строки поиска, кажется, сломана.
Таким образом, все еще нет удовлетворительного решения. Кажется, что панель поиска при встраивании в панель навигации в iOS 11 невозможно настроить. Между тем мне было бы достаточно изменить цвет текста заполнителя, но даже это кажется невозможным. (Я пробовал несколько подходов из StackOverflow - не работает)