テキストが収まるように自動的に縮小されるUILabelがあります。これが発生したら、別のラベルでまったく同じサイズを設定できるように、結果のフォントのポイントサイズを知る必要があります。
label.font.pointSizeにアクセスすると、縮小されたサイズではなく、元のサイズに戻ります。そこで、このNSStringの追加を使用して、フォントサイズを計算してみました。
- (CGSize)sizeWithFont:(UIFont *)font minFontSize:(CGFloat)minFontSize actualFontSize:(CGFloat *)actualFontSize forWidth:(CGFloat)width lineBreakMode:(UILineBreakMode)lineBreakMode
ただし、ラベルの高さの制約を考慮しない場合は幅のみを考慮するため、これも機能しません。(私の場合、フレームの高さに合わせるためにフォントをさらに縮小する必要があります)。
これは私に絶対に恐ろしいオプションを1つだけ残しているようです。それは、実際にフレームに収まる最大の高さが見つかるまで、次の関数を繰り返し呼び出すことです。
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
明らかに、それは非常に非効率的で厄介なことです。
誰かがより良い解決策を持っていますか?
ティム