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

Posted

技术标签:

【中文标题】根据文本调整 UIButton 大小的最简单方法【英文标题】:Easiest way to Adjust UIButton Size based on Text 【发布时间】:2016-09-02 02:37:27 【问题描述】:

我有可变长度的文本。我想调整按钮的大小以显示文本。有时文本太多,在这些情况下,我想将大小限制为一定的宽度。我怎样才能为 UIButton 做到这一点。

上面的文字太长了。我只想显示 40 个字符。

我正在尝试使用范围并得到以下信息:

最终结果:

【问题讨论】:

【参考方案1】:

使用自动布局,添加宽度约束,然后将宽度约束的关系设置为“小于或等于”常量(最大宽度)。只要您没有其他固定宽度约束或间距约束,UIButton 应该自动调整大小以仅适合文本直到最大。

更新: 为此,可以在不同的屏幕尺寸下使用,而不是添加宽度约束,而是向超级视图添加尾随空格(右侧)约束(例如)。然后将其设置为“大于或等于”,例如 20 分。这意味着间距将始终在不离开屏幕的情况下自行调整为尽可能大(自动调整宽度以适合文本)。

【讨论】:

我更新了原始问题以显示最终结果。有没有办法在最后添加“...”而不是自动添加到中间。 在 UIButton 的属性检查器中应该有一个设置 lineBreak,只需选择 Truncate Tail 而不是 Truncate middle 谢谢!最后一个问题。如果我将其设为固定宽度,比如说 350,那么对于 iPhone 5 和 iPhone 4 来说仍然太大了。在这种情况下我该怎么办?【参考方案2】:

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

【讨论】:

以上是关于根据文本调整 UIButton 大小的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章

根据内容(主要是标题和图像)自动调整 UIButton 大小的最佳方法是啥?

如何调整 UIButton 的大小以适应文本而不使其比屏幕更宽?

自动布局根据文本调整按钮大小并让文本字段填充可用空间

如何根据titleLabel sizel调整UIButton的大小?

bulma - 有效地调整字体大小

如何在 Xcode 4 中正确创建调整为文本长度的 UIButton?