带有换行和自动布局的 UIButton
UIButton with Linebreak and Autolayout
我有一个 UIButton
,我在应用程序中设置了它的文本,但是文本太长所以我想让 UIButton
文本换行并继续下一个行。
而且它必须与 AutoLayout
一起使用。
我已经通过 UILabel
和以下代码成功做到了这一点:
label.numberOfLines = 0;
label.preferredMaxLayoutWidth = 300.0;
然而,当我将它应用到这样的按钮时:
button.titleLabel.preferredMaxLayoutWidth = 200.0;
button.titleLabel.numberOfLines = 0;
好像不行。
该代码放在 viewDidLoad
中,如下所示:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
label.numberOfLines = 0;
label.preferredMaxLayoutWidth = 300.0;
button.titleLabel.preferredMaxLayoutWidth = 200.0;
button.titleLabel.numberOfLines = 0; }
然后我像这样使用 IBAction 设置按钮文本
-(IBAction)labelMake:(id)sender {
label.text = [NSString stringWithFormat: @"Test to see if label linebreaks"];
button.titleLabel.text = [NSString stringWithFormat: @"Test to see if button text linebreaks"];}
只需将 UIButton
设置为:
button.titleLabel.numberOfLines = 0;
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
并将文本设置为:
[button setTitle:@"This is a long text \nspanning multiple lines\nAnd there would be A LOT MORE" forState:UIControlStateNormal];
我有一个 UIButton
,我在应用程序中设置了它的文本,但是文本太长所以我想让 UIButton
文本换行并继续下一个行。
而且它必须与 AutoLayout
一起使用。
我已经通过 UILabel
和以下代码成功做到了这一点:
label.numberOfLines = 0;
label.preferredMaxLayoutWidth = 300.0;
然而,当我将它应用到这样的按钮时:
button.titleLabel.preferredMaxLayoutWidth = 200.0;
button.titleLabel.numberOfLines = 0;
好像不行。
该代码放在 viewDidLoad
中,如下所示:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
label.numberOfLines = 0;
label.preferredMaxLayoutWidth = 300.0;
button.titleLabel.preferredMaxLayoutWidth = 200.0;
button.titleLabel.numberOfLines = 0; }
然后我像这样使用 IBAction 设置按钮文本
-(IBAction)labelMake:(id)sender {
label.text = [NSString stringWithFormat: @"Test to see if label linebreaks"];
button.titleLabel.text = [NSString stringWithFormat: @"Test to see if button text linebreaks"];}
只需将 UIButton
设置为:
button.titleLabel.numberOfLines = 0;
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
并将文本设置为:
[button setTitle:@"This is a long text \nspanning multiple lines\nAnd there would be A LOT MORE" forState:UIControlStateNormal];