如何使用 Swift 默认 UILabel 字体和大小

Posted

技术标签:

【中文标题】如何使用 Swift 默认 UILabel 字体和大小【英文标题】:How to default UILabel Font and Size using Swift 【发布时间】:2016-03-31 03:45:46 【问题描述】:

我发现UISegmentedControl 像这样更改字体和大小:

UISegmentedControl.appearance().setTitleTextAttributes(myFontAttribute as [NSObject : AnyObject] , forState: .Normal)

但是UILabel没有这个方法

我想做的事

UILabel.appearance().setAttributed(myFontAttribute)

我不想更改 StoryBoard 中的 UILabel 字体

我想用程序来做这个(因为我的应用程序已经完成,但只有字体应该改成更大的和其他字体)

我该怎么办?

【问题讨论】:

你只是想改变字体和大小或属性字符串? 属性字符串更好 UIAppearance 仅允许您在 Objective-C 头文件中设置标记为 UI_APPEARANCE_SELECTOR 的属性。由于UILabel 没有这样的属性,它不能用UIAppearance 设置样式另见this question,这本质上是完全相同的问题,但使用的是Objective-C 【参考方案1】:

首先你需要给 UILabel 添加扩展:

extension UILabel
    var defaultFont: UIFont? 
        get  return self.font 
        set  self.font = newValue 
    

第二次使用外观设置:

    UILabel.appearance().defaultFont = UIFont.systemFont(ofSize: 25)

希望对你有帮助。

【讨论】:

这是非常宝贵的。这是我应用它的方式。 ***.com/questions/41138367/…【参考方案2】:

您可以像这样以编程方式更改标签字体

label.font = UIFont(name: label.font.fontName, size: 14)

仅使用粗体更改字体大小

label.font = UIFont.boldSystemFontOfSize(18)

仅更改字体大小

label.font = label.font.fontWithSize(14)

【讨论】:

这个想法对我不利,因为它需要 IBOutlet ...我不想使用 IBOutlet。因为我的应用中有很多 UILable。【参考方案3】:

如果你想改变字体的大小,使用下面的代码行:

对于 Swift 3:

label.font = label.font.withSize(20)

【讨论】:

【参考方案4】:

你可以在swift中使用这个简单的代码

myLabel.attributedText = NSMutableAttributedString(string: myLabel.text!, attributes: [NSFontAttributeName:UIFont(name: "YourFont", size: 12), NSForegroundColorAttributeName: UIColor.whiteColor()])

【讨论】:

以上是关于如何使用 Swift 默认 UILabel 字体和大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS Swift4 中滚动时增加/减少 UILabel 字体大小以及宽度和高度

如何在 Swift 中更改 UILabel 的字体大小?

如何在 Swift 中更改 UILabel 文本某些部分的字体属性? [复制]

Swift - UILabel部分字体变颜色

Swift - UILabel部分字体变颜色

UILabel 动态获取字体大小 - swift 3