我已将我的应用移植到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
提前致谢...
詹姆斯
答案 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))
// ...
}