Контроллер табличного представления встроен в контроллер навигации. Я программно добавил панель поиска в панель навигации контроллера таблиц. Я только изменил цвет панели навигации Background
на что-то отличное от Default (фиолетовый) - все остальное я оставил по умолчанию.
class TableViewController: UITableViewController {
let searchController = UISearchController(searchResultsController: nil)
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.hidesSearchBarWhenScrolling = true
navigationItem.searchController = searchController
}
}
Приведенный выше код сведен к минимуму для демонстрационных целей.
Всесделано с Xcode 11 (11A420a).
Я запустил проект на симуляторах и устройствах iOS 12.0 и 13.0.
- iOS 13.0
Панель поиска отображается при запуске.
Цвет фона панели навигации отображается правильно.
При прокрутке цвет фона панели навигации остается правильным.
В iOS 13.0 все работает как положено!
- iOS12.0
Панель поиска не отображается при запуске.
Цвет фона панели навигации отображается правильно.
При прокрутке цвет фона панели навигации становится белым, как только панель поиска становится видимой.
Я попытался программно изменить все настройки цвета в раскадровке, а также свойства. Мне не удалось изменить цвет фона панели навигации, когда панель поиска видима.
Кажется (?!), Что передний план панели навигации теряет прозрачность, когда панель поиска становится видимой.
ЕслиЯ использую Bar Tint
цвет панели навигации (! = Default
), все работает как положено (и как с iOS 13.0), но я теряю эффект градиента, который я хотел бы сохранить.
Что я пропустил?
Как мне избежать этого?
Ошибка?