gpt4 book ai didi

ios - boundingRectForGlyphRange 始终返回字体大小为 12 的矩形

转载 作者:可可西里 更新时间:2023-11-01 01:06:44 30 4
gpt4 key购买 nike

我正在尝试使用 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 的矩形?

最佳答案

只需使用 attributedString: 初始化 NSTextStorage

let textStorage = NSTextStorage(attributedString: attributedString)

代替

let textStorage = NSTextStorage(string: attributedString.mutableString)

关于ios - boundingRectForGlyphRange 始终返回字体大小为 12 的矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25989579/

30 4 0
文章推荐: iOS Swift UICollectionView registerNib 可重用 View 不起作用
文章推荐: java - 为什么 List 是 List 的子类型,而不是 List 的子类型?