boundingRectForGlyphRange始终为字体大小12返回rect

时间:2014-09-23 07:41:37

标签: ios swift textkit

我正在尝试使用boundingRectForGlyphRange方法计算单个字形的行数。一切都运行良好,除了它总是返回矩形,好像字体大小是12.事件虽然我在属性字符串中设置为20。

let font = UIFont.systemFontOfSize(20)
var attributedString = NSMutableAttributedString(string: text)
let range = NSRange(location: 0, length: countElements(text))
attributedString.addAttribute(NSFontAttributeName, value: font, range: range)


let textContainer = NSTextContainer()
textContainer.size = CGSize(width: 300, height: 100)
let layoutManager = NSLayoutManager()
let textStorage = NSTextStorage(string: attributedString.mutableString)

layoutManager.textStorage = textStorage
layoutManager.addTextContainer(textContainer)

let rect = layoutManager.boundingRectForGlyphRange(NSRange(location: 0, length: 1), inTextContainer: textContainer)

如何使文本大小为20而不是12?

返回rect

1 个答案:

答案 0 :(得分:3)

只需使用NSTextStorage初始化attributedString:

let textStorage = NSTextStorage(attributedString: attributedString)

而不是

let textStorage = NSTextStorage(string: attributedString.mutableString)