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