无论我走哪条路,我都遇到NSAtrributedString的问题,而且似乎无法弄清楚问题是什么。
使用下面的代码,我得到:Cannot invoke 'init' with an argument list of type '(string: StringLiteralConvertible, attributes: $T6)'
let cancelButtonTitle = NSAttributedString(string: "CANCEL", attributes: [NSFontAttributeName: buttonFont, NSForegroundColorAttributeName: UIColor.whiteColor()])
有什么想法可以解决这个问题吗?我已经在xcode 6.1和6.2中尝试过。
最佳答案
NSFontAttributeName
应该设置为UIFont
对象。
let buttonFont = UIFont.systemFontOfSize(10)
let cancelButtonTitle = NSAttributedString(string: "CANCEL",
attributes: [NSFontAttributeName: buttonFont,
NSForegroundColorAttributeName: UIColor.whiteColor()])
或者您使用的是特定字体。
if let buttonFont = UIFont(name: "Your Font", size: 10) {
let cancelButtonTitle = NSAttributedString(string: "CANCEL",
attributes: [NSFontAttributeName: buttonFont,
NSForegroundColorAttributeName: UIColor.whiteColor()])
}
因为
UIFont(name:,size:)
构造函数返回optional
,所以在NSAttributedString
中使用它之前,需要将其解包