我正在尝试使用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答案 0 :(得分:3)
只需使用NSTextStorage
初始化attributedString:
。
let textStorage = NSTextStorage(attributedString: attributedString)
而不是
let textStorage = NSTextStorage(string: attributedString.mutableString)