drawInRect 文本对齐使用 Swift
drawInRect text alignment using Swift
我正在尝试将一些文本放在图像的顶部,该图像位于 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)
问题出在文本对齐上。当我这样写时,我得到一个错误:
Type of expression is ambiguous without more context
当我将键和值类型设置为 [String : AnyObject] 时,编译器再次报错:
Cannot convert value of type 'NSTextAlignment.Type' to expected dictionary key type 'String'
我明白了。我研究了大约两个小时,但没有找到任何最新的解决方案,也没有找到一个如何使用 Swift.
编写云的解决方案
NSTextAlignment
不是有效密钥。请注意其他键如何以 Name
结尾。请参阅 NSFontAttributeName
和 NSForegroundColorAttributeName
的文档以查看有效密钥列表。
您需要使用 NSParagraphStyleAttributeName
而不是 NSTextAlignment
,这需要您创建 NSParagraphStyle
的实例。那就是您将 alignment
设置为 .Center
.
的地方
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = .Center
文字对齐属于段落样式。创建一个 NSMutableParagraphStyle
实例并将其与密钥 NSParagraphStyleAttributeName
一起传递给属性。
let style = NSMutableParagraphStyle()
style.alignment = .Center
let textFontAttributes = [
NSFontAttributeName: textFont,
NSForegroundColorAttributeName: textColor,
NSParagraphStyleAttributeName: style
]
我正在尝试将一些文本放在图像的顶部,该图像位于 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)
问题出在文本对齐上。当我这样写时,我得到一个错误:
Type of expression is ambiguous without more context
当我将键和值类型设置为 [String : AnyObject] 时,编译器再次报错:
Cannot convert value of type 'NSTextAlignment.Type' to expected dictionary key type 'String'
我明白了。我研究了大约两个小时,但没有找到任何最新的解决方案,也没有找到一个如何使用 Swift.
编写云的解决方案NSTextAlignment
不是有效密钥。请注意其他键如何以 Name
结尾。请参阅 NSFontAttributeName
和 NSForegroundColorAttributeName
的文档以查看有效密钥列表。
您需要使用 NSParagraphStyleAttributeName
而不是 NSTextAlignment
,这需要您创建 NSParagraphStyle
的实例。那就是您将 alignment
设置为 .Center
.
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.alignment = .Center
文字对齐属于段落样式。创建一个 NSMutableParagraphStyle
实例并将其与密钥 NSParagraphStyleAttributeName
一起传递给属性。
let style = NSMutableParagraphStyle()
style.alignment = .Center
let textFontAttributes = [
NSFontAttributeName: textFont,
NSForegroundColorAttributeName: textColor,
NSParagraphStyleAttributeName: style
]