1. ホーム
  2. アイオス

[解決済み】UIButtonに複数行のテキストを追加する方法は?

2022-03-25 11:20:47

質問

次のようなコードがあります。

UILabel *buttonLabel = [[UILabel alloc] initWithFrame:targetButton.bounds];
buttonLabel.text = @"Long text string";
[targetButton addSubview:buttonLabel];
[targetButton bringSubviewToFront:buttonLabel];

...アイデアは、ボタンに複数行のテキストを持つことができますが、テキストは常にUIButtonのbackgroundImageによって覆われているということです。ボタンのサブビューを表示するためのロギングコールは、UILabelが追加されたことを示しますが、テキスト自体は見ることができません。これはUIButtonのバグでしょうか、それとも私が何か間違ったことをしているのでしょうか?

解決方法を教えてください。

iOS 6以上の場合、以下を使用して複数行を許可してください。

button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
// you probably want to center it
button.titleLabel.textAlignment = NSTextAlignmentCenter; // if you want to 
[button setTitle: @"Line1\nLine2" forState: UIControlStateNormal];

iOS5以下の場合、複数行を許可する場合は以下をご利用ください。

button.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
// you probably want to center it
button.titleLabel.textAlignment = UITextAlignmentCenter;
[button setTitle: @"Line1\nLine2" forState: UIControlStateNormal];

2017年、iOS9以降向け ,

この2つを実行すればいいのです。

  1. 選ぶ "Attributed Text"
  2. 改行 "ポップアップで "ワードラップ"。