【问题标题】:How to default UILabel Font and Size using Swift如何使用 Swift 默认 UILabel 字体和大小
【发布时间】: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

标签: ios swift uilabel uiappearance


【解决方案1】:

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

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

第二次使用外观设置:

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

希望对你有帮助。

【讨论】:

【解决方案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()])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-12
      • 2017-12-10
      • 2019-10-05
      • 1970-01-01
      • 2013-04-24
      • 2018-10-13
      • 2012-05-15
      • 2011-08-26
      相关资源
      最近更新 更多