我一直在想,有没有一种在 Interface Builder 中UIButtons
使用多行的好方法?titleLabel
我没有找到,并UILabel
在每个按钮的顶部放置一个单独的按钮,并在按下和其他事件时跟踪它的颜色并不是很简单。
如果 IB 中没有这样的方法,也许有更好的代码替代方案?
我一直在想,有没有一种在 Interface Builder 中UIButtons
使用多行的好方法?titleLabel
我没有找到,并UILabel
在每个按钮的顶部放置一个单独的按钮,并在按下和其他事件时跟踪它的颜色并不是很简单。
如果 IB 中没有这样的方法,也许有更好的代码替代方案?
Code:
To allow multiple line you can use:
button.titleLabel.lineBreakMode = UILineBreakModeWordWrap;
button.titleLabel.textAlignment = UITextAlignmentCenter;
[button setTitle: @"Line1\nLine2" forState: UIControlStateNormal];
In iOS 6, UILineBreakModeWordWrap
and UITextAlignmentCenter
are deprecated, so use:
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
button.titleLabel.textAlignment = NSTextAlignmentCenter;
Interface Builder:
您可以通过多种方式单独在 Interface Builder 中进行操作。
顺便提一下,如果不想换行但仍想在 UIButton 上实现多行标题,可以通过在 numberOfLines 之前设置 lineBreakMode 来完成,这是因为 lineBreakMode 似乎取消了 numberOfLines 设置,因此我们按此顺序进行操作。
迅速:
button.titleLabel?.lineBreakMode = NSLineBreakMode.byTruncatingTail
button.titleLabel?.numberOfLines = 2
button.setTitle(myTitle, for: UIControlState.normal)