0

当我做

CGRect lineBounds = CTLineGetBoundsWithOptions(lineRef, 0);

我明白了

(CGRect) lineBounds = origin=(x=0, y=-3.8560002) size=(width=181.31201, height=19.088001)

lineBounds.origin.y 指的是什么信息?为什么它是负面的?

与我得到完全相同的高度和宽度的情况相反——我没有得到 -3.85 的值。

double width = CTLineGetTypographicBounds(lineRef, &ascent, &descent, &leading);
double height = ascent + descent + leading;

那么它告诉我什么?

4

1 回答 1

4

遗憾的是,没有关于CTLineGetBoundsWithOptions函数的下降文档,但是,正如头文件所述,此方法返回

由类型和选项指定的线的边界,使得坐标原点与线原点重合,矩形原点在左下角。如果该行无效,此函数将返回CGRectNull

您应该使用获取线原点CTFrameGetLineOrigins并将相应的原点附加到获得的边界原点。

另外,考虑查看CTLineBoundsOptions枚举以过滤不需要的元素

于 2013-11-08T02:12:12.540 回答