0

https://developer.apple.com/library/ios/documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html#//apple_ref/occ/instm/NSString/sizeWithAttributesから::

UITextAttributeFont
テキスト属性ディクショナリ内のフォントへのキー。
対応する値は UIFont のインスタンスです。
サイズ 0.0 のフォントを使用して、現在のコンテキストのデフォルトのフォント サイズを取得します。
iOS 5.0 以降で利用できます。
iOS 7.0 で廃止されました。
UIStringDrawing.h で宣言されています。

特定の 1 行のテキスト文字列の幅 (高さも必要) を取得しようとしていますが、これが現在の状態です。「...」は、フォントを適切に初期化するために必要なものです。このメソッドは不完全です (値を返しません) が、フォントの情報を指定し、描画された場合に文字列が何ピクセル幅になるかを取得する非推奨の方法が必要です。

-(float)getLength:(NSString *)text
{
    CGSize size = [text sizeWithAttributes:[[NSDictionary alloc] initWithObjectsAndKeys:...];
}

セマンティクスは、「最終的な呼び出しを行うときにフォントの詳細を指定する」から「フォントの詳細を一度指定すると、別のものに変更するまで有効なままになります」に変更されましたか?

ありがとう、

4

1 に答える 1

1

ほんの数日前、私自身の仕事であなたの問題に非常に近い問題を見ていました。

(最終的な問題を解決する) 探している呼び出しは" boundingRectWithSize: options: attributes: context:"で、 (TTF ファイルから) ロードした UIFont を属性の 1 つとして渡します。

さらに良いことに、NSAttributedString または NSMutableAttributedString (これには"boundingRectWithSize: options: context:" メソッドもあります。これは、フォントとフォント スタイルを組み合わせてテキストの幅と高さを計算できるためです。

于 2013-09-23T17:03:03.700 に答える