次のコードがあります...
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 つのことだけを実行します。
- 「属性付きテキスト」を選択
- 「改行」ポップアップで「単語の折り返し」を選択します