Почему UIBarButtonItem изменяет размеры, когда я щелкаю по нему? - PullRequest
0 голосов
/ 04 мая 2018

Всякий раз, когда я щелкаю этот UIBarButtonItem, у которого есть заголовок Unicode для отображения символа Cog, он изменяет размер и становится меньше. Вот код:

let settings = UIBarButtonItem(title: NSString(string: "\u{2699}\u{0000FE0E}") as String, style: .plain, target: self, action: #selector(show_settings))
let font = UIFont.systemFont(ofSize: 28)
let attributes = [NSAttributedStringKey.font : font]
settings.setTitleTextAttributes(attributes, for: .normal)

Вот как это выглядит, когда я нажимаю на него: UIBarButtonItem resize bug

Ответы [ 4 ]

0 голосов
/ 04 мая 2018

Попробуйте это,

settings.setTitleTextAttributes(
            [
                NSAttributedStringKey.font :UIFont.systemFont(ofSize: 28) ,
                NSAttributedStringKey.foregroundColor : UIColor.blue
            ],
            for: .normal)
0 голосов
/ 04 мая 2018

Попробуйте это

     settings.titleLabel.font = [UIFont systemFontOfSize: 28];

или Свифт

    settings.titleLabel?.font =  UIFont.systemFont(ofSize: 28)

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

0 голосов
/ 04 мая 2018

Установить атрибуты заголовка для выделенного состояния, а также ниже:

 let settings = UIBarButtonItem(title: NSString(string: "\u{2699}\u{0000FE0E}") as String, style: .plain, target: self, action: #selector(show_settings))
        let font = UIFont.systemFont(ofSize: 28)
        let attributes = [NSAttributedStringKey.font : font]
        settings.setTitleTextAttributes(attributes, for: .normal)
        settings.setTitleTextAttributes(attributes, for: .highlighted)

enter image description here

Надеюсь, это поможет вам:)

0 голосов
/ 04 мая 2018

Здесь вы устанавливаете атрибуты только для нормальное состояние

settings.setTitleTextAttributes(attributes, for: .normal)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...