我需要通过编程方式设置UIButton标题UILabel的字体大小。


当前回答

button.titleLabel.font = [UIFont systemFontOfSize:size];

应该帮助

其他回答

button.titleLabel.font = <whatever font you want>

对于那些想知道为什么他们的短信不显示的人,如果你这样做了

button.titleLabel.text = @"something";

它不会显示,你需要做:

[button setTitle:@"My title" forState:UIControlStateNormal]; //or whatever you want the control state to be

通过这种方式,您可以设置fontSize并在一个类中处理它。

1. 创建了UIButton的扩展,并添加了以下代码:

- (void)awakeFromNib{

    [super awakeFromNib];

    [self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
    [self.titleLabel setFont:[UIFont fontWithName:@"font" 
                                     size:self.titleLabel.font.pointSize]];
    [self setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter];
}

2.1在代码中创建UIButton

现在如果你在你的代码中创建了一个UIButton, #import extension of yourUIButton '并创建按钮。

2.2在界面生成器中创建按钮

如果你在界面构建器中创建了UIButton,选择UIButton,转到标识检查器,并为UIButton添加创建的扩展类。

检查自定义字体名称是否添加了“目标成员资格”复选框。这应该会有所帮助。

button.titleLabel.font = [UIFont systemFontOfSize:size];

应该帮助

支持UIButton中的辅助功能

extension UILabel
{
   func scaledFont(for font: UIFont) -> UIFont {
        if #available(iOS 11.0, *) {
            return UIFontMetrics.default.scaledFont(for: font)
        } else {
            return font.withSize(scaler * font.pointSize)
        }
    }
    func customFontScaleFactor(font : UIFont) {
        translatesAutoresizingMaskIntoConstraints = false

         self.adjustsFontForContentSizeCategory = true
         self.font = FontMetrics.scaledFont(for: font)
    }
}

你可以按钮字体现在。

UIButton().titleLabel?.customFontScaleFactor(font: UIFont.systemFont(ofSize: 12))