Ios 使用Swift进行drawInRect文本对齐

Ios 使用Swift进行drawInRect文本对齐,ios,swift,cgrect,Ios,Swift,Cgrect,我试图把一些文本放在一个图像的顶部,该图像将位于CGRect的中心,CGRect将位于该图像的顶部。下面是一些代码: let textColor: UIColor = UIColor.whiteColor() let textFont: UIFont = UIFont(name: "Helvetica Bold", size: 17 )! let textAlignment = NSTextAlignment.Center

我试图把一些文本放在一个图像的顶部,该图像将位于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”


我明白。我对此进行了大约两个小时的研究,没有发现任何最新的解决方案,也没有发现cloud one如何使用Swift编写此解决方案。

NSTextAlignment
不是有效的密钥。请注意其他键是如何以
Name
结尾的。请参阅
NSFontAttributeName
NSForegroundColorAttributeName
的文档以查看有效密钥的列表

您需要使用
NSParagraphStyleAttributeName
而不是
NSTextAlignment
,这要求您创建
NSParagraphStyle
的实例。这就是您将
对齐设置为
.Center
的位置

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

NSTextAlignment
不是有效的键。请注意其他键是如何以
Name
结尾的。请参阅
NSFontAttributeName
NSForegroundColorAttributeName
的文档以查看有效密钥的列表

您需要使用
NSParagraphStyleAttributeName
而不是
NSTextAlignment
,这要求您创建
NSParagraphStyle
的实例。这就是您将
对齐设置为
.Center
的位置

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

文本对齐方式属于段落样式。创建一个
NSMutableParagraphStyle
实例,并使用键
NSParagraphStyleAttributeName
将其传递给属性

let style = NSMutableParagraphStyle()
style.alignment = .Center
let textFontAttributes = [
            NSFontAttributeName: textFont,
            NSForegroundColorAttributeName: textColor,
            NSParagraphStyleAttributeName: style
            ]

文本对齐方式属于段落样式。创建一个
NSMutableParagraphStyle
实例,并使用键
NSParagraphStyleAttributeName
将其传递给属性

let style = NSMutableParagraphStyle()
style.alignment = .Center
let textFontAttributes = [
            NSFontAttributeName: textFont,
            NSForegroundColorAttributeName: textColor,
            NSParagraphStyleAttributeName: style
            ]