Как изменить размер шрифта кнопки в условиях локализации с помощью Swift 3

У меня есть две языковые версии (английский, китайский) в моем приложении. Я хотел бы изменить текст языка кнопки на эти языки, когда пользователь нажимает кнопку «Изменить язык».
Например,

 btnLogOut.setTitle(NSLocalizedString("Logout", comment: ""), for: .normal)


На китайском языке текст отображается не полностью. Итак, я хотел бы изменить размер шрифта, когда текст кнопки переводится на китайский язык.
Я не хочу менять размер шрифта в английской версии. Размер шрифта по умолчанию для этой кнопки: "System Font. 15"

btnLogOut.setTitle(NSLocalizedString("Logout", comment: ""), for: .normal, UIFont.buttonFontSize) <br>

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


person May Phyu    schedule 27.04.2017    source источник
comment
в зависимости от условия, которое вы можете использовать: UIButton().titleLabel?.font = UIFont.systemFont(ofSize: 13)   -  person ankit    schedule 27.04.2017
comment
@ankit, если мы добавим вот так, этот размер шрифта 13 также повлияет на английский язык, верно? Я не хочу менять размер шрифта на английском языке. Я просто хочу изменить только китайский язык.   -  person May Phyu    schedule 27.04.2017
comment
@MayPhyu, вы пытались изменить размер шрифта всякий раз, когда пользователь нажимает «Изменить язык», а он на китайском?   -  person Lysdexia    schedule 27.04.2017
comment
@MayPhyu ты пробовал button.titleLabel?.adjustsFontSizeToFitWidth = true ?   -  person aircraft    schedule 27.04.2017
comment
Братан @aircraft, я добавляю этот код. Оно работает ! Спасибо, бро   -  person May Phyu    schedule 27.04.2017
comment
@MayPhyu Добро пожаловать.   -  person aircraft    schedule 27.04.2017


Ответы (1)


Ну, один из способов — проверить, когда пользователь меняет язык. Например,

changeLanguage() // change language

if currentLanguage == "Chinese" {
    buttonLogout.titleLabel?.font = UIFont.boldSystemFont(ofSize: 12)
} else {
    buttonLogout.titleLabel?.font = UIFont.boldSystemFont(ofSize: 15)
}
enter code here

В зависимости от того, как вы реализуете изменение языка, у вас может быть какой-то флаг, который проверяет текущий язык, а затем изменяет размер шрифта на нужный вам.

Или другой способ:

buttonLogout.titleLabel.adjustsFontSizeToFitWidth = true
person Lysdexia    schedule 27.04.2017
comment
Братан @Cuevas, твой второй способ работает для меня. Спасибо, бро. - person May Phyu; 27.04.2017
comment
братан @Cuevas, как я могу определить язык в iOS Swift? - person May Phyu; 28.04.2017