Personalização do iOS 11 do UISearchController
Eu usava o seguinte código antes do iOS 11 para personalizar a aparência doUISearchController
Barra de pesquisa:
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
}
}
No entanto, tendo atualizado para o iOS 11 e adicionando oUISearchController
como parte donavigationItem
qualquer a personalização (exceto a aparência do teclado que comprova que meu código foi chamado) não aparece. Isso é um bug ou eu o implementei incorretamente?
EDITAR: Em anexo estão duas capturas de tela de dispositivos com iOS 10 (primeiro) e iOS 11
EDIT 2: Grande parte da atenção dada a essa questão até agora se concentra na cor do texto daUISearchBar
. Estou vendo mais do que isso - a cor do plano de fundo, a cor da tonalidade, o indicador de pesquisa e as cores claras dos botões, etc.tudo não podem ser personalizados em um dispositivo executando o iOS 11, apesar de serem perfeitamente capazes de fazê-lo no iOS 10.