Ios 使用Swift进行drawInRect文本对齐
我试图把一些文本放在一个图像的顶部,该图像将位于CGRect的中心,CGRect将位于该图像的顶部。下面是一些代码: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
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
]