Как изменить цвет заполнителя UISearchBar и кнопку очистки - PullRequest
0 голосов
/ 31 октября 2019

Я получил эти строки кода в моем контроллере представления.

этот код предназначен для цвета текста UISearchBar и работает

let textFieldInsideSearchBar = searchBar.value(forKey: “searchField”) as? UITextField
textFieldInsideSearchBar?.textColor = UIColor.white

этот код предназначен для заполнителя UISearchBarцвет текста и он не работает

let textFieldInsideSearchBarLabel = textFieldInsideSearchBar!.value(forKey: “placeholderLabel”) as? UILabel
textFieldInsideSearchBarLabel?.textColor = UIColor.white

этот является рабочим кодом для цвета текста заполнителя и т. д.

этот коддля цвета значка увеличительного стекла UISearchBar и он работает

let glassIconView = textFieldInsideSearchBar?.leftView as? UIImageView
glassIconView?.image = glassIconView?.image?.withRenderingMode(.alwaysTemplate)
glassIconView?.tintColor = UIColor.white

этот код является кодом для цвета кнопки очистки UISearchBar (x) и не работает

let clearButton = textFieldInsideSearchBar?.value(forKey: “clearButton”) as! UIButton
clearButton.setImage(clearButton.imageView?.image?.withRenderingMode(.alwaysTemplate), for: .normal)
clearButton.tintColor = UIColor.white

Я обнаружил, что эта версия изменения цвета кнопки очистки не работает в Xcode 11. Удалось установить рабочую версию. Вы должны импортировать актив для кнопки отмены. После этого вам нужно изменить атрибут «Render As» вашего значка на «Шаблонное изображение в папке Assets».

let clearButton = textFieldInsideUISearchBar?.value(forKey: "clearButton") as! UIButton
    clearButton.setImage(UIImage(named: "yourIconName"), for: .normal)
    clearButton.tintColor = .white

Кроме того, я перепробовал почти каждый код, который смог найти. Каким-то образом они работают для текста и увеличительного стекла, но не работают для других двух. Они выглядят очень некрасиво, когда фон темный. Есть ли лучший способ изменить цвета текста кнопки и заполнителя?

Xcode версии 11.1 Swift 5.1

Ответы [ 2 ]

0 голосов
/ 15 ноября 2019

UISearchBarController Настройка для iOS 13 Попробуйте это

0 голосов
/ 31 октября 2019

Для цвет заполнителя см. this .

Чтобы изменить строку поиска и очистить оттенок изображения, необходимо установить панель поиска с новыми изображениями.

    yourSearchBar.setImage(normalImage, for: .clear, state: .normal)
    yourSearchBar.setImage(highlightedImage, for: .clear, state: .highlighted)
...