在swift中设置全局字体



我创建了一个扩展,在其中我设置了自定义字体

extension UILabel {
var substituteFontName : String {
get { return self.font.fontName }
set {
self.font = UIFont(name: newValue, size: self.font.pointSize)
}
}
}

但我有一个问题:我得到了一个错误Unexpectedly found nil while unwrapping an Optional value,但如果我设置像这个这样的静态大小

self.font = UIFont(name: newValue, size: 13)

我没有收到错误,字体正在更改。我如何设置自动的确切大小

font属性实际上是隐式展开的UIFont!,因此您应该将set更改为:

self.font = UIFont(name: newValue, size: self.font?.pointSize ?? UIFont.labelFontSize)

最新更新