Почему кнопка navbar исчезает в iOS10? - PullRequest
0 голосов
/ 31 августа 2018

Код для создания кнопки:

languageTopBarButton = UIButton(type: .custom)
languageTopBarButton.setImage(UIImage(named: "iconGlobe"), for: .normal)
languageTopBarButton.setTitle(title, for: .normal)
languageTopBarButton.setTitleColor(UIColor.green, for: .normal)
languageTopBarButton.addTarget(self, action: #selector(rightNavButtonTapped), for: .touchUpInside)

let navBarHeight = navigationController?.navigationBar.frame.size.height
var rightButtonFrame = languageTopBarButton.frame
rightButtonFrame.size = CGSize(width: rightButtonFrame.width, height: navBarHeight!)
languageTopBarButton.frame = rightButtonFrame

let buttonItem = UIBarButtonItem(customView: languageTopBarButton)

navigationItem.rightBarButtonItem = buttonItem

кнопка работает в iOS11, но исчезает в iOS10

enter image description here

Что не так?

1 Ответ

0 голосов
/ 02 сентября 2018

Я пытался создать кнопку. Хорошо работает на iOS10 и iOS11. Я думаю, что проблема в вашем коде в том, что вы установили неправильный фрейм для своей пользовательской кнопки.

override func viewDidLoad() {
    super.viewDidLoad()

    setupBarButton()
}

private func setupBarButton() {
    let languageTopBarButton = UIButton(type: .custom)
    languageTopBarButton.frame = CGRect(x: 0, y: 0, width: 20, height: 20)
    languageTopBarButton.setImage(UIImage(named: "iconGlobe"), for: .normal)
    let rightBarButton = UIBarButtonItem(customView: languageTopBarButton)
    self.navigationItem.rightBarButtonItem = rightBarButton
}
...