如何使用 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 字体大小以及宽度和高度