17

CocoaTouchで文字列のピクセル幅を測定する必要があります。誰かがこれを行う方法を説明するリンクを私に指摘できますか?

4

3 に答える 3

27

iPhone OSでは少し異なりますが、代わりにNSString UIKitAdditionsReferenceを参照してください。考え方はMacOSX用のCocoaと同じですが、もっと多くの方法があります。

1行のテキストの場合:

- (CGSize)sizeWithFont:(UIFont *)font 
              forWidth:(CGFloat)width 
         lineBreakMode:(UILineBreakMode)lineBreakMode

また、複数行のテキストの場合は、次を使用します。

- (CGSize)sizeWithFont:(UIFont *)font 
     constrainedToSize:(CGSize)size 
         lineBreakMode:(UILineBreakMode)lineBreakMode

1行のテキストの引数としてaを使用するUILineBreakModeと混乱する可能性がありますが、これは、改行がテキストの切り捨て方法を定義するためにも使用されるためです。

于 2009-09-17T06:27:19.247 に答える
5

特に、NSString Application KitAdditionsReferenceboundingRectWithSize:options:attributes:をご覧ください。そのルーチンによって返される値は、あなたのの幅を与えるはずですNSString

于 2009-09-16T21:33:56.173 に答える
0

上記のソリューションは非推奨になりました。iOS7以降の場合はこれを確認してください

 sizeWithFont:constrainedToSize:lineBreakMode 

現在非推奨です。以下のコードスニペットを使用してください。

UIFont *font=[UIFont fontWithName:@"Arial" size:16.f];

NSString *name = @"APPLE";

CGSize size = [name sizeWithAttributes:@{NSFontAttributeName:font}];
于 2015-09-28T04:15:42.470 に答える