[解決済み] タイトルに2行のテキストを含むUIButton (numberOfLines=2)
質問
私は
UIButton
を作成しようとしています。そのtitleLabelには2行のテキストがあります。これは私が使っているコードです。
UIButton *titleButton = [[UIButton alloc] initWithFrame:CGRectMake(15, 10, frame.size.width-100, 100)];
titleButton.titleLabel.font = [UIFont boldSystemFontOfSize:24.0];
[titleButton setTitle:@"This text is very long and should get truncated at the end of the second line" forState:UIControlStateNormal];
titleButton.titleLabel.lineBreakMode = UILineBreakModeTailTruncation;
titleButton.titleLabel.numberOfLines = 2;
[self addSubview:titleButton];
これを試すと、テキストは1行にしか表示されません。複数行のテキストを実現する唯一の方法と思われる
UIButton.titleLabel
に複数行のテキストを表示するには
numberOfLines=0
を使用し
UILineBreakModeWordWrap
. しかし、これではテキストが正確に2行になることは保証されません。
プレーンな
UILabel
を使用すると、動作します。
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 10, frame.size.width-100, 100)];
titleLabel.font = [UIFont boldSystemFontOfSize:24.0];
titleLabel.text = @"This text is very long and should get truncated at the end of the second line";
titleLabel.numberOfLines = 2;
titleLabel.lineBreakMode = UILineBreakModeTailTruncation;
[self addSubview:titleLabel];
の作り方をご存知の方はいらっしゃいますか?
UIButton
を2行で動作させる方法をご存知の方はいらっしゃいますか?唯一の解決策は、別の
UILabel
を作成し、それをボタンのサブビューとして追加する唯一の解決策ですか?
どのように解決するには?
最近のiOSのバージョンに対応するため、回答を更新しました。
この回答が受け入れられたので、@Seanの回答をここに追加しました。
ボタンのtitleLabelにこれらのプロパティを設定します。
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
button.titleLabel.numberOfLines = 2; // if you want unlimited number of lines put 0
Swift 3と4です。
button.titleLabel?.lineBreakMode = .byWordWrapping
button.titleLabel?.numberOfLines = 2 // if you want unlimited number of lines put 0
古いバージョンのiOSのためのオリジナルアンサー
の上に2行のテキストが必要な場合、そのテキストは
UIButton
の上に2行のテキストを書きたい場合は
UIlabel
を追加してください。
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 10, frame.size.width-100, 100)];
titleLabel.font = [UIFont boldSystemFontOfSize:24.0];
titleLabel.text = @"This text is very long and should get truncated at the end of the second line";
titleLabel.numberOfLines = 2;
titleLabel.lineBreakMode = UILineBreakModeTailTruncation;
[myButton addSubview:titleLabel]; //add label to button instead.
インターフェースビルダーソリューションの更新
より完全な答えのために @Borut Tomazin の答えを追加しました。 Borut Tomazin 氏の回答が改善されたため、この部分を再度更新しました。
これは、コードを必要とせず、もっと簡単に行うことができます。Interface Builder で
Line Break
をUIButtonの
Word Wrap
. これで、複数行のタイトルを挿入することができます。ただ
Option + Return
キーを押すだけで、新しい行を作ることができます。また、Interface BuilderのUser Defined Runtime Attributeにこれを追加する必要があります。
titleLabel.textAlignment Number [1]
関連
-
[解決済み] UIButtonのタイトルを左揃えにするにはどうしたらよいですか?
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み】UIButtonに複数行のテキストを追加する方法は?
-
[解決済み] UIButtonのタイトルテキスト色
-
[解決済み] NSLog オーバーライドされた記述方法でのオブジェクトのメモリアドレスの記録
-
[解決済み] NSTimeInterval(秒)を分単位に変換する方法
-
[解決済み] Swift - 2行のテキストを持つUIButton
-
[解決済み] libxml/tree.h にそのようなファイルやディレクトリはありません。
-
[解決済み] iOSアプリケーションの最上位ビュー/ウィンドウへの参照取得
-
[解決済み] フォーマット文字列, 先頭のゼロを含む整数
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】UIButtonに複数行のテキストを追加する方法は?
-
[解決済み] Objective-Cで配列に結合する
-
[解決済み] RootViewControllerのスイッチングアニメーション
-
[解決済み] idの意味は?
-
[解決済み] Objective-Cでクラスのインスタンスを@protocolにキャストする
-
[解決済み] Xcodeの "unused variable "の警告を消すにはどうしたらいいですか?
-
[解決済み] Objective-Cでの文字列比較
-
[解決済み] hitTest:withEventを使用して、スーパービューのフレーム外にあるサブビューのタッチをキャプチャする。
-
[解決済み] ViewController の respondsToSelector: 割り当て解除されたインスタンスにメッセージが送信される (CRASH)
-
[解決済み] NSSetからのオブジェクトの取得