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 に答える