我的代码,它将CFAttributedString绘制到图形上下文中,用于在更新Xcode 6.3之前正常工作。
现在,升级后,我收到以下错误:
'_' is not convertible to 'CFString!'
和
'[String : AnyObject]' is not convertible to '[String : AnyObject]'
用于定义字符串属性的代码行:
let attributes : [String:AnyObject] = [
kCTForegroundColorAttributeName:UIColor.darkGrayColor().CGColor,
kCTFontAttributeName:font
]
这是我绘制文字的方式:
var attrString = CFAttributedStringCreate(nil,myString,attributes)
var line = CTLineCreateWithAttributedString(attrString)
var lineWidth = CTLineGetBoundsWithOptions(line, CTLineBoundsOptions.UseGlyphPathBounds).width
var lineHeight = CTLineGetBoundsWithOptions(line, CTLineBoundsOptions.UseGlyphPathBounds).height
CGContextSetTextMatrix(context, transformScale)
CGContextSetTextPosition(context, (rect.width - lineWidth)/2, rect.height - lineHeight*1.5)
CTLineDraw(line, context)
我尝试在其后面添加“as String”来强制转换kCTForegroundColorAttributeName和kCTFontAttributeName。这删除了错误,但字符串似乎没有得到属性。
答案 0 :(得分:1)
我通过更改格式并通过用NSForegroundColorAttributeName替换kCTForegroundColorAttributeName来解决问题
以下是固定行:
let attributes: [String: AnyObject] = [
NSForegroundColorAttributeName : UIColor.darkGrayColor().CGColor,
NSFontAttributeName : font
]