根据文本调整UIButton大小的最简单方法

4

我有一些长度不确定的文本。我想调整按钮的大小以显示文本。有时文本太多,这种情况下我想将其限制在某个宽度内。如何在UIButton上实现这个功能。

enter image description here

上面的文本太长了,我只想显示大约40个字符。
我正在尝试使用范围,我得到以下内容:

enter image description here

最终结果:

enter image description here

2个回答

8
使用Autolayout,添加一个宽度约束,并将宽度约束的关系设置为“小于等于”常数(最大宽度)。只要没有其他固定宽度约束或间距约束,UIButton应该自动调整大小以适合文本的最大宽度。
更新: 为了使其适用于不同的屏幕尺寸,不要添加宽度约束,而是将右侧间距约束添加到父视图(例如)。然后将其设置为“大于等于”20pt。这意味着间距将始终自动调整为尽可能大,而不会超出屏幕(宽度自适应文本)。

我更新了原始问题以展示最终结果。有没有办法在末尾添加“…”而不是自动添加到中间。 - john doe
在UIButton的属性检查器中,应该有一个设置行断点的选项,只需选择“截去尾部”而不是“截去中间”。 - Zayne ZH
谢谢!最后一个问题。如果我将其固定宽度设为350,那么对于iPhone 5和iPhone 4来说仍然太大了。在这种情况下我该怎么办? - john doe

0
我会创建一个变量来测量文本的长度,然后将按钮的框架分配给该变量乘以某个数字。如果文本超过一定数量(在您的情况下为40个字符),那么我会使按钮更高,并将行数设置为0,以便它溢出到下一个。如果您只想将其限制在40个字符以内,则应该有一种方法来防止输入超过40个字符。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接