2 行文本 UIButton
Posted
技术标签:
【中文标题】2 行文本 UIButton【英文标题】:2 line text UIButton 【发布时间】:2015-03-26 14:15:48 【问题描述】:我有一个 UIButton,按钮的文本由随机发生器填充。 但是我的问题是,有时文本中的字符数太多,导致按钮现在显示整个文本。
是否可以检查字符是否太多,然后将其余文本放到另一个文本行?所以基本上必须为 UIButton 输入文本行而不是一个?
【问题讨论】:
【参考方案1】:Objectivc-C
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
button.titleLabel.numberOfLines = 2;
button.titleLabel.textAlignment = NSTextAlignmentCenter; // if u need
别用这个
button.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
button.titleLabel.textAlignment = NSTextAlignmentCenter;
[button setTitle: @"Line1\nLine2" forState: UIControlStateNormal];
斯威夫特
button.titleLabel!.lineBreakMode = .ByWordWrapping
button.titleLabel!.numberOfLines = 2
button.titleLabel!.textAlignment = .Center
别用这个
button.titleLabel!.lineBreakMode = .ByWordWrapping
button.titleLabel!.textAlignment = .Center
button.setTitle("Line1\nLine2", forState: .Normal)
Swift3
buttonName.titleLabel!.lineBreakMode = .byWordWrapping
buttonName.titleLabel!.textAlignment = .center
buttonName.setTitle("Line1\nLine2", for: .normal)
【讨论】:
如果您需要超过 2 行,请使用 numberOfLines = 0,祝您有美好的一天【参考方案2】:在 Interface Builder 中,将 UIButton
控件的 Line Break 模式更改为 Word Wrap:
为了使文本居中,将标题设为 Attributed 而不是 Plain。
【讨论】:
【参考方案3】:假设您使用的是故事板或 .xib 文件,请单击您的按钮并打开右侧的属性检查器,然后在按钮部分中,查找“换行符”字段。将其下拉,您将看到 2 个选项(以及其他选项) - 'Character wrap' 和 'Word wrap',它们提供了您所追求的功能。
或者在代码中,您可以使用以下之一
[BUTTON setLineBreakMode:NSLineBreakByWordWrapping]
[BUTTON setLineBreakMode:NSLineBreakByCharWrapping]
【讨论】:
【参考方案4】:当使用自动布局而不是自动换行时,我遇到了 UILabel 增长的问题。解决方案是设置 preferredMaxLayoutWidth 以强制它换行。
对于按钮,您可以使用以下方法执行相同的操作:
button.titleLabel.preferredMaxLayoutWidth = <max width required>.
【讨论】:
以上是关于2 行文本 UIButton的主要内容,如果未能解决你的问题,请参考以下文章