如果我有一个用这样的字符串初始化的框架 setter
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(attrString);
我想找到显示框架中最大字符串的最小宽度。是否有捷径可寻?我可以通过迭代行并运行并从那里计算它来做到这一点,但它似乎有一个方法,因为它会在内部计算它。
我试过了
CGSize sz = CTFramesetterSuggestFrameSizeWithConstraints(framesetter, CFRangeMake(0,0), NULL, CGSizeMake(1, CGFLOAT_MAX), NULL);
但它只是返回一个恒定大小,这似乎是单个字形的宽度。
蒂亚
最佳答案
如果您正在寻找宽度,则应在 CGSizeMake 中传递 CGFLOAT_MAX 作为宽度,以指示宽度不受约束。
一般来说,要查找给定宽度的高度,请传递 CGSizeMake(myWidth, CGFLOAT_MAX),要查找单行文本的宽度,请传递 CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX)。
关于macos - 有什么方法可以(轻松)确定格式化 Framesetter 所需的最小宽度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9227409/