Установить цвет панели навигации без использования .barTintColor? - PullRequest
1 голос
/ 02 мая 2019

Я пытаюсь отобразить пользовательское изображение вместо rightBarButton, но настройка barTintColor UINavigationBar окрашивает изображение.

enter image description here

В AppDelegate, попытался:

UINavigationBar.appearance().barTintColor = .blue

В viewDidLoad, попытался:

self.navigationController?.navigationBar.backgroundColor = .blue
self.navigationController?.navigationBar.tintColor = .blue
self.navigationController?.navigationBar.barTintColor = .blue

Чтобы установить изображение:

let avatarBtn = UIButton(type: .custom)
avatarBtn.frame = CGRect(x: 0.0, y: 0.0, width: 30, height: 30)
avatarBtn.setImage(UIImage(named:"myAvatar")?.withRenderingMode(.alwaysOriginal), for: .normal)

let menuBarItem = UIBarButtonItem(customView: avatarBtn)
menuBarItem.tintColor = .clear

self.navigationItem.rightBarButtonItem = menuBarItem

Ничего из этого не помогло.Как настроить разноцветную кнопку навигационной панели без оттенка?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 02 мая 2019

Я использовал ваш код, но в моем случае я получил ожидаемый результат.Какой тип изображения вы используете?

 override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationController?.navigationBar.backgroundColor = .blue
    self.navigationController?.navigationBar.tintColor = .blue
    self.navigationController?.navigationBar.barTintColor = .blue
    let avatarBtn = UIButton(type: .custom)
    avatarBtn.frame = CGRect(x: 0.0, y: 0.0, width: 30, height: 30)
    avatarBtn.setImage(UIImage(named:"myAvatar1")?.withRenderingMode(.alwaysOriginal), for: .normal)
    let menuBarItem = UIBarButtonItem(customView: avatarBtn)
    menuBarItem.tintColor = .clear
    self.navigationItem.rightBarButtonItem = menuBarItem
}

enter image description here

0 голосов
/ 02 мая 2019

Изменить tintColor.

tintColor: оттенок цвета, применяемый к элементам навигации и кнопкам панели.

...