当前位置 : 主页 > 手机开发 > ios >

ios – 使用Swift 4根据当前字体重量更改应用程序中的所有UILabel字体

来源:互联网 收集:自由互联 发布时间:2021-06-11
在 Swift 3中,我使用以下内容替换AppDelegate中BOLD到MEDIUM中的所有字体: UILabel.appearance().substituteFontNameBold = "HelveticaNeue-Medium" 并通过将此扩展添加到UILabel: extension UILabel { var substituteFontN
在 Swift 3中,我使用以下内容替换AppDelegate中BOLD到MEDIUM中的所有字体:

UILabel.appearance().substituteFontNameBold = "HelveticaNeue-Medium"

并通过将此扩展添加到UILabel:

extension UILabel {
    var substituteFontNameBold : String {
        get { return self.font.fontName }
        set {
            if self.font.fontName.contains("Bold") {
                self.font = UIFont(name: newValue, size: self.font.pointSize)
            }
        }
    }
}

随着升级到Swift 4,我得到一个“致命的错误:在打开一个Optional值时意外发现nil”

if self.font.fontName.contains("Bold") {

如何继续使用Swift 4替换标签中BOLD到MEDIUM中的所有字体?

我找到了解决方法,你基本上必须添加@objc才能使它工作,添加后不再有nil值

@objc public var substituteFontName : String
网友评论