gpt4 book ai didi

ios - Core Text - 字形高度

转载 作者:可可西里 更新时间:2023-11-01 03:08:38 24 4
gpt4 key购买 nike

我有 2 个属性字符串,分别是“A”和“.”

我需要计算每个字符串的高度。目前两者返回的高度相同,它似乎返回给定字体中最高字符的最大可能高度(即使字符串中不存在该字符)。

我想获得每个字符的确切像素高度,以便我可以调整它们周围的 View 大小以紧贴字符(字形)。我试过使用 CTFramesetterSuggestFrameSizeWithConstraints() 和 CTLineGetTypographicBounds() 但它返回一个类似于属性字符串大小方法的数字。

如果有任何有关如何执行此操作的提示,我们将不胜感激!

最佳答案

终于搞定了,可以这样搞:

// Create an attributed string
CTLineRef line = CTLineCreateWithAttributedString(_string);

// Get an array of glyph runs from the line
CFArrayRef runArray = CTLineGetGlyphRuns(line);

// loop through each run in the array
CTRunRef run = ....

// Get the range of the run
CFRange range = CFRangeMake...

// Use CTRunGetImageBounds
CGRect glyphRect = CTRunGetImageBounds(run, context, range);

// glyphRect now contains the bounds of the glyph run, if the string is just 1 character you have the correct dimensions of that character.

关于ios - Core Text - 字形高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11739561/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com