Я пытаюсь настроить свою панель поиска, однако я получаю этот белый цвет, скрывающий интересующий меня цвет фона. Кажется, это связано с моим черным стилем навигации. Однако, когда я выбираю значение по умолчанию, белый цвет заменяется черным. Может кто-то помочь мне с этим? Заранее спасибо! пс. я пишу это в obj-c
Почему я получаю эти белые подвиды в iOS 12 для _UISearchBarSearchFieldBackgroundView
Ответы (2)
Итак, я нашел это решение здесь, и оно работает над удалением 2 подвидов.
iOS 11 настроить панель поиска на панели навигации
Я знал, что уже слишком поздно, но я много искал, чтобы решить подобную проблему. Поэтому я добавляю решение, которое сработало для меня. Моя проблема была немного другой по сравнению с этой. В моем случае, если я добавил цвет оттенка полосы к белому, в iOS 13+ он выглядит очень красиво, но в iOS 12 _UISearchBarSearchFieldBackgroundView выглядит как скриншот в вопросе. Поэтому я оказываюсь на этой странице, когда ищу свою проблему, и другие тоже могут попасть сюда.
Белый цвет на самом деле является цветом оттенка UISearchBar. Для iOS 12 я использовал немного другой цвет и заметил, что он также влияет на кнопку отмены рядом с ним. Поэтому я добавил код, чтобы использовать исходный цвет для кнопки отмены.
if #available(iOS 13.0, *){
customSearchBar.tintColor = .white
}else{
customSearchBar.tintColor = UIColor(red: 0.46, green: 0.46, blue: 0.5, alpha: 0.12) // the color found on visual debugger
UIBarButtonItem.appearance(whenContainedInInstancesOf: [UISearchBar.self]).setTitleTextAttributes(
[NSAttributedString.Key.foregroundColor : UIColor.white],for: .normal)
}
Здесь вы можете видеть, что я использую значение жесткого кода для установки цвета оттенка. Я получил этот цвет с помощью визуального отладчика при выполнении кода на устройстве iOS 13+.
Вы можете видеть, что внешний вид идентичен для iOS 12 и iOS 13+.