如何将多行文本添加到 UIButton?
问题描述:
我有以下代码...
UILabel *buttonLabel = [[UILabel alloc] initWithFrame:targetButton.bounds];
buttonLabel.text = @"Long text string";
[targetButton addSubview:buttonLabel];
[targetButton bringSubviewToFront:buttonLabel];
...我的想法是我可以为按钮设置多行文本,但文本总是被 UIButton 的 backgroundImage 遮挡.显示按钮子视图的日志调用显示已添加 UILabel,但无法看到文本本身.这是 UIButton 中的错误还是我做错了什么?
...the idea being that I can have multi-line text for the button, but the text is always obscured by the backgroundImage of the UIButton. A logging call to show the subviews of the button shows that the UILabel has been added, but the text itself cannot be seen. Is this a bug in UIButton or am I doing something wrong?
答
对于 iOS 6 及更高版本,使用以下内容允许多行:
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
// you probably want to center it
button.titleLabel.textAlignment = NSTextAlignmentCenter; // if you want to
[button setTitle: @"Line1
Line2" forState: UIControlStateNormal];
对于 iOS 5 及以下版本,请使用以下内容以允许多行:
button.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
// you probably want to center it
button.titleLabel.textAlignment = UITextAlignmentCenter;
[button setTitle: @"Line1
Line2" forState: UIControlStateNormal];
2017,iOS9 向前,
一般来说,只做这两件事:
generally, just do these two things:
- 选择属性文本"
- 在换行符"弹出窗口中选择自动换行"