3

UILabelsとtextFieldsは、ビューのスペースに合わせてフォントを自動スケーリングできます(たとえば、テキストが蓄積されるため)。実行されたスケールの量を測定する方法はありますか?見たところ、自動スケーリングの場合、myLabel.font.pointsizeまたはmyTextField.font.pointSizeの値は、表示されているテキストのスケールに関係なく同じままです。

4

1 に答える 1

6

のUIKit追加でこれを行う方法がありますNSString

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

したがって、UILabel を使用している場合は、次のコードを使用できます。

CGFloat actualFontSize;
UILabel *label = [self label];
CGSize size = [[label text] sizeWithFont:[label font]
                             minFontSize:[label minimumFontSize]
                          actualFontSize:&actualFontSize
                                forWidth:[label bounds].size.width
                           lineBreakMode:[label lineBreakMode]];

その時点で、sizeには描画されたテキストのサイズが含まれactualFontSize、ラベルが描画に使用しているフォントの実際のサイズになります。

于 2012-08-06T15:23:13.557 に答える