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

Ios 根据文本调整UIButton大小的最简单方法,ios,swift,autolayout,Ios,Swift,Autolayout,我有可变长度的文本。我想调整按钮的大小以显示文本。有时文本太多,在这些情况下,我想限制大小到一定的宽度。我怎样才能为你做到这一点呢 以上是一段很长的文字。我只想显示大概40个字符 我正在尝试使用该范围,我得到以下结果: 最终结果: 我会创建一个变量来测量文本的长度,然后将按钮的框架指定给该变量乘以某个数字。如果文本超过某个数字(您的情况是40个字符),我会将按钮调高,并将行数设置为0,以便它溢出到下一行。如果您只想将其限制为总共40个字符,那么应该有一种方法来防止任何超过40个字符的输入。使

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

以上是一段很长的文字。我只想显示大概40个字符

我正在尝试使用该范围,我得到以下结果:

最终结果:


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

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

更新:
要使其适用于不同的屏幕大小,请向superview(例如)添加尾随空间(右侧)约束,而不是添加宽度约束。然后将其设置为“大于或等于”,比如20分。这意味着间距将始终调整为尽可能大,而不会离开屏幕(宽度自动调整为适合文本)。

我更新了原始问题以显示最终结果。有没有办法在末尾添加“…”而不是自动添加到中间。在UI按钮的属性检查器中应该有一个设置换行符,只需选择截断尾部而不是截断中间谢谢!最后一个问题。如果我让它固定宽度,比如说350,那么它对于iPhone5和iPhone4来说仍然太大。在这种情况下我能做什么?