我试图把一些文字放在图像的顶部,这个图像位于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。请参阅NSFontAttributeNameNSForegroundColorAttributeName文档以查看有效键的列表。
您需要使用NSTextAlignment而不是NSParagraphStyleAttributeName来创建NSParagraphStyle的实例。这就是您将alignment设置为.Center的地方。

let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = .Center

关于ios - 使用Swift进行drawInRect文本对齐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36626382/

10-14 21:03
查看更多