当我这样做时
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;
那它告诉我什么?
答案 0 :(得分:3)
遗憾的是,CTLineGetBoundsWithOptions
函数没有下降文档,但是,
如头文件所述,此方法返回
由类型和选项指定的线的边界,使得坐标原点与线原点重合,而rect原点位于左下角。如果该行无效,则此函数将返回
CGRectNull
。
您应该使用CTFrameGetLineOrigins
获取行原点,并将相应的原点附加到获得的边界原点。
另外,请考虑查看CTLineBoundsOptions
枚举以过滤不需要的元素