我试图把一些文字放在图像的顶部,这个图像位于CGRect的中心,这个CGRect位于图像的顶部。下面是一些代码:
let textColor: UIColor = UIColor.whiteColor()
let textFont: UIFont = UIFont(name: "Helvetica Bold", size: 17
)!
let textAlignment = NSTextAlignment.Center
let textFontAttributes = [
NSFontAttributeName: textFont,
NSForegroundColorAttributeName: textColor,
NSTextAlignment: textAlignment
]
myString.drawInRect(rect, withAttributes: textFontAttributes)
问题在于文本对齐。当我这样写的时候,我会得到一个错误:
表达式类型不明确,没有更多上下文
当我将键和值类型设置为[String:AnyObject]时,编译器再次抱怨:
无法将“NSTextAlignment.type”类型的值转换为所需的字典键类型“String”
我明白。我花了大约两个小时研究这个问题,没有找到任何最新的解决方案,也没有找到一个云一如何使用Swift编写这个问题的解决方案。
最佳答案
NSTextAlignment
不是有效的密钥。注意其他键如何结束Name
。请参阅NSFontAttributeName
和NSForegroundColorAttributeName
文档以查看有效键的列表。
您需要使用NSTextAlignment
而不是NSParagraphStyleAttributeName
来创建NSParagraphStyle
的实例。这就是您将alignment
设置为.Center
的地方。
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = .Center
关于ios - 使用Swift进行drawInRect文本对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36626382/