Ответ 1
Вы можете использовать User Defined Runtime Attributes, чтобы установить этот флаг с помощью раскадровки.
Задайте следующий путь:
titleLabel.adjustsFontSizeToFitWidth to true
Существует установка UILabel в раскадровке, которая позволяет настраивать конфигурации автоматической усадки, как показано ниже:
Но я не могу найти то же самое для текстовой метки UIButton. Я знаю, что я могу установить это программно, но любопытно узнать, есть ли способ включить этот параметр для UIButton в Storyboard.
Вы можете использовать User Defined Runtime Attributes, чтобы установить этот флаг с помощью раскадровки.
Задайте следующий путь:
titleLabel.adjustsFontSizeToFitWidth to true
Нет, в раскадровке нет опции для установки автоматической смены Button textlabel,
Но вы можете установить его программно с помощью adjustsFontSizeToFitWidth как вам известно.
yourbutton.titleLabel?.adjustsFontSizeToFitWidth = true;
попробуйте это
btn.titleLabel.adjustsFontSizeToFitWidth = YES;
btn.titleLabel.minimumScaleFactor = 0.5; // set whatever factor you want to set
Если вы хотите установить в раскадровке, попробуйте IBDesignable и IBInspectable
Решение Swift 4
class CustomButton : UIButton{
@IBInspectable var adjustsTitleFontSizeToFitWidth: Bool = false {
didSet {
self.titleLabel?.adjustsFontSizeToFitWidth = adjustsTitleFontSizeToFitWidth
}
}
}