UIButtonに複数行のテキストを追加するにはどうすればいいですか? 質問する

UIButtonに複数行のテキストを追加するにはどうすればいいですか? 質問する

次のコードがあります...

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

ボタンに複数行のテキストを使用できるという考えですが、テキストは常に UIButton の backgroundImage によって隠されています。ボタンのサブビューを表示するためのログ呼び出しでは、UILabel が追加されたことが示されますが、テキスト自体は表示されません。これは UIButton のバグですか、それとも私が何か間違っているのでしょうか?

ベストアンサー1

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];

iOS 5 以下の場合は、複数行を許可するには以下を使用します。

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

2017年、iOS9以降

一般的には、次の 2 つのことだけを実行します。

  1. 「属性付きテキスト」を選択
  2. 「改行」ポップアップで「単語の折り返し」を選択します

おすすめ記事