iOS 10和设置属性文本的自定义字体

iOS 10和设置属性文本的自定义字体,ios,swift,fonts,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:

我已经将我的应用程序移植到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中也可以运行

先谢谢你

James

UIFont(name:)
返回一个可选文件,因此您必须在使用前将其展开:

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))
    // ...
}

您收到了什么错误消息?如果它崩溃,错误消息是什么?这是一个越界的问题?如果是,我认为这是关于字符串如何计数字符的问题,所以请尝试使用
NSMakeRange(0,(sText作为NSString.length)
或类似的方法?另外,如果您想为整个文本设置相同的效果,为什么不使用
NSMutableAttributedString
init方法,在该方法中可以传递
attrs
?您好,我要澄清的是:“未识别的选择器发送到实例”是我遇到的错误。另外,我也不确定人们为什么对这个问题投反对票。我知道如何编码,这肯定是某种类型的错误。有人用Swift 3项目在XCode 8中尝试过代码吗?我用Swift 3项目和XCode 8进行了尝试,发布了一个非常有效的答案,你回复了相同的崩溃评论,这就是为什么我在dropbox上上传了一个示例,并用dropbox链接编辑了我的答案,代码与我发布的完全相同。你绝对是对的,伙计!就这样。谢谢你的帮助