Видимый UISearchBar меняет цвет фона UINavigationBar - PullRequest
0 голосов
/ 09 октября 2019

Контроллер табличного представления встроен в контроллер навигации. Я программно добавил панель поиска в панель навигации контроллера таблиц. Я только изменил цвет панели навигации 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), но я теряю эффект градиента, который я хотел бы сохранить.

Что я пропустил?
Как мне избежать этого?
Ошибка?

search bar not visible search bar visible

...