[解決済み】UILabelのフォントサイズを動的に変更する。
2022-04-14 18:08:20
質問
現在、私は
UILabel
:
factLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 100, 280, 100)];
factLabel.text = @"some text some text some text some text";
factLabel.backgroundColor = [UIColor clearColor];
factLabel.lineBreakMode = UILineBreakModeWordWrap;
factLabel.numberOfLines = 10;
[self.view addSubview:factLabel];
私のiOSアプリケーションの生涯を通じて
factLabel
は、さまざまな値を取得します。複数の文章を持つものもあれば、5、6個の単語だけのものもあります。
どのように設定すれば
UILabel
テキストが常に定義した境界線に収まるように、フォントサイズを変更できるようにするには?
解決方法は?
単線です。
factLabel.numberOfLines = 1;
factLabel.minimumFontSize = 8;
factLabel.adjustsFontSizeToFitWidth = YES;
上記のコードで、テキストのフォントサイズを(例えば)以下のように調整します。
8
ラベルの中にテキストを収めようとしています。
numberOfLines = 1
は必須です。
複数行になります。
について
numberOfLines > 1
を通して、最終的なテキストのサイズを把握する方法があります。
NSStringのsizeWithFont:... UIKitの追加
メソッドなどがあります。
CGSize lLabelSize = [yourText sizeWithFont:factLabel.font
forWidth:factLabel.frame.size.width
lineBreakMode:factLabel.lineBreakMode];
後は、結果的にラベルのサイズを変更するだけです。
lLabelSize
例えば、ラベルの高さだけを変更すると仮定して)。
factLabel.frame = CGRectMake(factLabel.frame.origin.x, factLabel.frame.origin.y, factLabel.frame.size.width, lLabelSize.height);
iOS6
単線です。
iOS6からスタート。
minimumFontSize
は非推奨となりました。行は
factLabel.minimumFontSize = 8.;
に変更することができます。
factLabel.minimumScaleFactor = 8./factLabel.font.pointSize;
iOS7
複数行になります。
iOS7からスタート。
sizeWithFont
は非推奨となります。
マルチライン・ケースは、以下のようになります。
factLabel.numberOfLines = 0;
factLabel.lineBreakMode = NSLineBreakByWordWrapping;
CGSize maximumLabelSize = CGSizeMake(factLabel.frame.size.width, CGFLOAT_MAX);
CGSize expectSize = [factLabel sizeThatFits:maximumLabelSize];
factLabel.frame = CGRectMake(factLabel.frame.origin.x, factLabel.frame.origin.y, expectSize.width, expectSize.height);
iOS 13 (Swift 5)です。
label.adjustsFontSizeToFitWidth = true
label.minimumScaleFactor = 0.5
関連
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
クラッシュエラー libc++abi.dylib: NSException 型のキャッチできない例外で終了_allanGold のブログ - ProgrammerITS401
-
[解決済み] UILabel 内のテキストを縦に上部に揃える
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] CSS Font Border?
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み】iPhoneアプリケーションにカスタムフォントを埋め込むことはできますか?
-
[解決済み】SwiftでUILabelのフォントサイズを変更するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] カスタムオブジェクトを含むNSMutableArrayをソートするにはどうすればよいですか?
-
[解決済み] Xcode 7のエラーです。"Missing iOS Distribution signing identity for ..." (iOS配布用署名IDがありません)
-
[解決済み] Xcodeにおけるバージョンとビルドの比較
-
[解決済み] SwiftでUIAlertViewを作成するにはどうしたらいいですか?
-
[解決済み] UIViewの左上と右上だけにcornerRadiusを設定する方法は?
-
[解決済み] UITextFieldの最大文字数を設定します。
-
[解決済み] NSOperationとGrand Central Dispatchの比較
-
[解決済み] UITextBorderStyleNoneを使用してUITextFieldのパディングを設定する