[解決済み] UILabel - テキストに合うようにラベルを自動サイズ?
2022-05-01 02:28:17
質問
UILabel のボックス/境界を、含まれるテキストに合わせて自動リサイズすることは可能ですか? (ディスプレイより大きくなっても構いません。)
つまり、ユーザーが "hello" や "my name is really long i want to fit it in this box" を入力しても、それは決して切り捨てられず、ラベルはそれに応じて「広げられる」のですね。
どのように解決するのですか?
のカテゴリを作成した私のgistをご覧ください。
UILabel
同じようなことをするために、私のカテゴリでは
UILabel
は、すべてのコンテンツを表示するために高さを伸ばします。
https://gist.github.com/1005520
または、この記事をご覧ください。 https://stackoverflow.com/a/7242981/662605
これは高さを伸ばすものですが、このように簡単に変更して、逆に幅を伸ばすことができます。
@implementation UILabel (dynamicSizeMeWidth)
- (void)resizeToStretch{
float width = [self expectedWidth];
CGRect newFrame = [self frame];
newFrame.size.width = width;
[self setFrame:newFrame];
}
- (float)expectedWidth{
[self setNumberOfLines:1];
CGSize maximumLabelSize = CGSizeMake(CGRectGetWidth(self.bounds), CGFLOAT_MAX);
CGSize expectedLabelSize = [[self text] sizeWithFont:[self font]
constrainedToSize:maximumLabelSize
lineBreakMode:[self lineBreakMode]];
return expectedLabelSize.width;
}
@end
もっとシンプルに
sizeToFit
メソッドから利用できます。
UIView
クラスがありますが、念のため行数を1行に設定してください。
iOS 6 アップデート
AutoLayout を使用している場合は、組み込みのソリューションがあります。行数を0に設定することで、フレームワークはテキストに合うようにラベルのサイズを適切に変更します(高さを追加します)。
iOS 8 アップデート
sizeWithFont:
は非推奨なので
sizeWithAttributes:
の代わりに
- (float)expectedWidth{
[self setNumberOfLines:1];
CGSize expectedLabelSize = [[self text] sizeWithAttributes:@{NSFontAttributeName:self.font}];
return expectedLabelSize.width;
}
関連
-
[解決済み] UILabel 内のテキストを縦に上部に揃える
-
[解決済み] UITableViewの下にある余分なセパレータをなくす
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] Xcode 6のバグ:Interface Builderファイル内の不明なクラス
-
[解決済み] UINavigationBarの1px下の行を非表示にする方法
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] iPadマルチタスクのサポートには、これらの方向が必要です。
-
[解決済み] Cocoapods警告 - CocoaPodsがプロジェクトの基本構成を設定しなかった理由は、プロジェクトに既にカスタム構成が設定されているためです。
-
[解決済み] iOSです。オートレイアウトで複数行のUILabelを使用する
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
JenkinsがIOSを自動パッケージングしてモミを配布
-
[解決済み] App Storeのアプリと連動させる方法
-
[解決済み] Objective-Cで文字列が空かどうかをテストするにはどうすればよいですか?
-
[解決済み] NSの接頭辞はどういう意味ですか?
-
[解決済み] iOS 13 のフルスクリーンでモーダルを表示する
-
[解決済み] iOSシミュレータでスクリーンショットを撮る
-
[解決済み] コードサインエラーです。期限切れのプロファイルを削除した後、プロビジョニングプロファイルが見つからない
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] iOSで現在のデバイスの言語を取得するには?
-
[解決済み] UILabel sizeToFitがautolayout ios6で動作しない。