我已经通过编程创建了一个标签,并将其adjustsToFitWidth设置为true。现在我想改变它的字体,但如果不使标签的字体大小保持恒定,我无法做到这一点。有人知道如何在Swift中仅更改UILabel的字体而不更改字体大小吗?
为什么不获取字体大小,并使用该值指定新字体?
let fontSize = self.label.font.pointSize;
self.label.font = UIFont(name: "HelveticaNeue", size: fontSize)
label.font = UIFont(name: "Arial", size: label.font.pointSize)
这将使用相同的字体大小,“Arial”可以是您想选择的任何字体系列。
一份更好的答案。
UILabel子类化:添加一个空的swift文件,并将其命名为例如EZLabel。添加以下代码。
import Foundation
import UIKit
class EZLabel: UILabel {
override func awakeFromNib() {
super.awakeFromNib()
changeFontName()
}
func changeFontName()
{
self.font = UIFont(name: "Roboto", size: self.font.pointSize)
}
}
extension UILabel {
override open func awakeFromNib() {
super.awakeFromNib()
changeFontName()
}
func changeFontName()
{
self.font = UIFont(name: "YOUR_FONT_NAME", size: self.font.pointSize)
}
}
/* Do this also for buttons and any uiviews */