Я использовал следующий код до iOS 11, чтобы настроить внешний вид панели поиска UISearchController
:
var searchController = UISearchController(searchResultsController: nil)
searchController.searchBar.setDefaultSearchBar()
searchController.searchResultsUpdater = self
if #available(iOS 11.0, *) {
navigationItem.searchController = searchController
} else {
tableView.tableHeaderView = searchController.searchBar
}
extension UISearchBar {
func setDefaultSearchBar() {
self.tintColor = UIColor.blue
self.searchBarStyle = .minimal
self.backgroundImage = UIImage(color: UIColor.clear)
let searchBarTextField = self.value(forKey: "searchField") as! UITextField
searchBarTextField.textColor = UIColor.white
searchBarTextField.tintColor = UIColor.blue
searchBarTextField = .dark
}
}
Однако обновление до iOS 11 и добавление UISearchController
в качестве части navigationItem
любой настройки (за исключением того, что внешний вид клавиатуры доказывает, что мой код был вызван) не отображается. Является ли это ошибкой или я неправильно ее реализовал?
EDIT: Прилагаются два скриншота устройств под управлением iOS 10 (первый) и iOS 11
РЕДАКТИРОВАТЬ 2: Большая часть внимания к этому вопросу до сих пор фокусируется на цвете текста UISearchBar
. Я смотрю больше, чем это: цвет фона, цвет оттенка, индикатор поиска и цвета кнопок и т.д. все не могут быть настроены на устройстве с iOS 11, несмотря на то, сделайте это в iOS 10.