4

Unicode テキストを使用してこの関数を使用しようとすると、フォント サイズに応じて計算される高さとして間違った高さが返されますが、絵文字が大きくなり、Unicode を使用しない場合よりも高さが高くなります。

[text sizeWithFont:[UIFont systemFontOfSize:12.0] ConstrainedToSize:CGSizeMake(233.0f, 999.0f) lineBreakMode:UILineBreakModeWordWrap];

文字列にユニコードを含む実際の高さを計算できますか?

4

1 に答える 1

0

CoreText フレームワークを見てください。

次のようなものを試すことができます:

CTFrameSetterRef framesetter = CTFramesetterCreateWithAttributedString(myAttributedString);
CGSize size = CTFramesetterSuggestFrameSizeWithConstraints(frame setter, CFRangeMake(0, stringLength), NULL, CGSizeMake(maxWidth, maxHeight), NULL);

これにより、適切なサイズが得られるはずです。もちろん、文字列が最大サイズに収まるように maxHeight を任意に大きくすることもできます。または、最後のパラメーターとして CFRange へのポインターを渡すと、渡した最大サイズに収まる文字列の範囲に設定されます。

これがうまくいくことを願っています:)

于 2015-02-04T19:35:04.190 に答える