Подгонка размера шрифта к закрывающей кнопке? - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть кнопки в моем проекте XCode, которые масштабируются с размером экрана.Они все квадраты.Первоначально, когда я переключал дисплей на iPad, кнопки масштабировались должным образом, но размер текста оставался прежним.Затем я добавил эти строки и установил размер шрифта, который соответствует размеру iPad.Затем шрифт будет уменьшаться в зависимости от небольших устройств.Однако на небольших устройствах над текстом будет огромное пространство.

button.titleLabel?.numberOfLines = 0;
button.titleLabel?.adjustsFontSizeToFitWidth = true;
button.titleLabel?.lineBreakMode = NSLineBreakMode.byClipping;

https://imgur.com/8KEiJxj ||Вы можете увидеть дополнительную обивку сверху.Я хочу, чтобы текст был правильно подобран (уже выполнен), а также центрирован по кнопке.Как я могу это сделать?

1 Ответ

0 голосов
/ 17 февраля 2019

Я бы установил очень большой шрифт для заголовка кнопки, а затем установил бы минимальный масштаб шрифта, например, 0,1 или 0,2.Например:

let button = UIButton()
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 50) //for example
button.titleLabel?.minimumScaleFactor = 0.1
button.titleLabel?.numberOfLines = 1 // you don't want it to split into 2 rows, right?
button.titleLabel?.adjustsFontSizeToFitWidth = true

минимумScaleFactor гарантирует, что текст вашего ярлыка будет автоматически сжиматься, в зависимости от рамки вашей кнопки, до тех пор, пока он не станет 10% от установленного вами начального масштаба.

ОБНОВЛЕНИЕ :

Добавьте эту строку, чтобы текст отображался в центре:

button.titleLabel?.textAlignment = .center // or .justified (try it yourself)

Хотя ваше изображение настолько нечеткое.Что такое серая зона?Если весь квадрат - это ваша кнопка, а серый - это изображение, то вы должны заметить, что текст кажется посередине квадрата, что приводит к выводу, что ваше изображение неверно.Его отверстие не в центре, где должен быть текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...