iOS 10并为属性文本设置自定义字体

时间:2016-10-12 18:51:12

标签: ios swift fonts

我已将我的应用移植到XCode 8和Swift 3语言语法。从那以后,我遇到了很多问题,将自定义字体设置为我当前的问题:

var sText = "Hello world, this is some text that I'm going to try to format ok?"
var attText = NSMutableAttributedString(string: sText)

var attrs = [NSFontAttributeName: UIFont(name: "Arial", size: 16)]
attText.addAttributes(attrs, range: NSMakeRange(0, sText.characters.count))

lblLabel1.attributedText = attText

因此,每次使用"无法识别的选择器发送到实例"时,此代码都会崩溃。有趣的是,设置其他属性(如前景色)工作得很好......只是没有字体。我尝试过自定义字体,系统字体,其他命名字体......似乎没什么用。其他人遇到这个?我在这里做错了吗???此代码在XCode 7中工作正常,甚至在XCode 8中也可以使用旧版Swift

提前致谢...

詹姆斯

1 个答案:

答案 0 :(得分:2)

UIFont(name:)返回一个Optional,因此您必须在使用之前将其解包:

var sText = "Hello world, this is some text that I'm going to try to format ok?"
var attText = NSMutableAttributedString(string: sText)
if let arial = UIFont(name: "Arial", size: 16) {
    var attrs = [NSFontAttributeName: arial]
    attText.addAttributes(attrs, range: NSMakeRange(0, sText.characters.count))
    // ...
}