Отрегулируйте размер шрифта для текста в UIButton
Я хочу, чтобы текст кнопки вписывался в UIButton, а UIButton имеет фиксированный размер.
Конечно, я могу получить доступ к titleLabel UIButton.
В метке я установил бы autoshrink
минимальную шкалу шрифта, которая, по-видимому, соответствует
self.myButton.titleLabel.adjustsFontSizeToFitWidth = YES;
но на самом деле не ведет себя одинаково, поскольку он только делает текст горизонтально в границах, а не вертикально, тем самым не изменяя размер шрифта.
Как я могу на самом деле настроить размер шрифта этикетки программно, чтобы текст вписывался в границы меток (как показано в Цель на рисунке ниже)?
![adjustsFontSizeToFitWidth фактически не регулирует размер шрифта, чтобы он соответствовал кадру, только ширина]()
Я уже пробовал
self.myButton.titleLabel.numberOfLines = 0;
self.myButton.titleLabel.minimumScaleFactor = 0.5f;
без успеха, всегда заканчивается как в adjustsFontSizeToFitWidth
в левой части рисунка выше.
Изменить. Решение также должно соответствовать ios7
Ответы
Ответ 1
self.mybutton.titleLabel.minimumScaleFactor = 0.5f;
self.mybutton.titleLabel.numberOfLines = 0; <-- Or to desired number of lines
self.mybutton.titleLabel.adjustsFontSizeToFitWidth = YES;
... сделал трюк, после layoutIfNeeded в viewDidLoad
Как оказалось, все они должны быть настроены на то, чтобы на самом деле настроить размер шрифта, а не просто вставлять его в рамку.
Обновление для Swift 3:
mybutton.titleLabel?.minimumScaleFactor = 0.5
mybutton.titleLabel?.numberOfLines = 0 <-- Or to desired number of lines
mybutton.titleLabel?.adjustsFontSizeToFitWidth = true
Ответ 2
Попробуйте вызвать следующий метод.
button.titleLabel?.baselineAdjustment = UIBaselineAdjustment.AlignCenters
Ответ 3
Обновлен код для Swift 3.0:
yourButton.titleLabel?.minimumScaleFactor = 0.5
yourButton.titleLabel?.numberOfLines = 0
yourButton.titleLabel?.adjustsFontSizeToFitWidth = true
Ответ 4
попробуйте следующее:
[myButton setFont:[[myButton font] fontWithSize:--originalButtonFontSize]];
textWidth = [text sizeWithFont:[myButton font]].width;
}
Ответ 5
Вы также можете установить атрибут Runtime User Defined Runtime в построителе интерфейса для кнопки, где "titleLabel.adjustsFontSizeToFitWidth" = true
Ответ 6
В Xcode- > Open storyboard- > Перейти к атрибутам inspector- > Control- > Alignment- > Выбрать второй как по горизонтали, так и по вертикали.
или
YourButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
Ответ 7
Запишите эту строку после вашего кода:
yourButton.SizeToFitWidth=YES;
Ответ 8
Если вы предпочитаете делать в раскадровке, просто нажмите кнопку, затем покажите атрибут атрибутов и установите разрыв строки на "Word Wrap".
![word wrap]()