gpt4 book ai didi

macos - 有什么方法可以(轻松)确定格式化 Framesetter 所需的最小宽度?

转载 作者:行者123 更新时间:2023-12-03 17:59:06 34 4
gpt4 key购买 nike

如果我有一个用这样的字符串初始化的框架 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/

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