首页 > 解决方案 > 如何根据文本长度制作按钮宽度?

问题描述

我想找到一种方法,如何根据文本大小计算按钮宽度?由于我使用 localize 进行翻译,因此根据不同的语言,按钮文本会发生变化,其中一些不适合按钮大小。

标签: swift

解决方案


如果您使用自动布局

这很容易。您只需要确保指定 x 坐标的约束(如leading spaceresp. trailing space,also width)的优先级低于 Horizo​​ntal 的值content compression resistance priority

宽度约束

内容抗压优先级

如果您手动执行

您可以使用以下方法计算文本的大小:

guard let buttonFont = button.titleLabel?.font else { return }
let buttonText = "click me"
let size = t.size(withAttributes:[.font: buttonFont])

然后设置按钮的框架大小:

button.frame.size = size

推荐阅读