防止 UILabel 截尾
Prevent a UILabel from truncating tail
我有两个 UILabel
:名称 和 描述。约束设置如下:
- name 有左上约束
- 说明有右上约束
- 它们之间至少有 10 像素的间距限制,这样它们就不会重叠
当我 运行 程序时,不一致,有时 name 是 t运行cated 有时 description 是 t运行 的。
问题是:有没有一种方法可以保证当 运行从 space 出来时总是 运行 找到正确的标签?
您可以尝试为左侧标签 (lbl1
) 设置最小宽度约束,然后将约束连接到 ViewController
.
中的 IBOutlet
然后在加载或 willAppear 或任何其他相关操作时,确定 lbl1
的最小宽度并将其设置为约束常量。
然后在视图出现之前,它应该将右侧标签更新为正确的宽度,而不会截断左侧的标签。
有关确定标签大小的参考,请参阅此答案:
你可以使用这个属性来减小字体大小不是问题
解决此问题的正确方法是更改其中一个标签的内容拥抱优先级。默认情况下,它设置为 251。只需将其中一个标签的 Content Hugging Priority 更改为 250 或 252,具体取决于您想要的 "hugged"。
在code中:
func setContentHuggingPriority(_ priority: UILayoutPriority,
for axis: NSLayoutConstraint.Axis)
或界面生成器:
如果您需要有关此主题的更多信息,请查看此 post:https://medium.com/@abhimuralidharan/ios-content-hugging-and-content-compression-resistance-priorities-476fb5828ef
如果您不介意较小的字体,您可以使用 UILabel().adjustsFontSizeToFitWidth = true
。
我有两个 UILabel
:名称 和 描述。约束设置如下:
- name 有左上约束
- 说明有右上约束
- 它们之间至少有 10 像素的间距限制,这样它们就不会重叠
当我 运行 程序时,不一致,有时 name 是 t运行cated 有时 description 是 t运行 的。
问题是:有没有一种方法可以保证当 运行从 space 出来时总是 运行 找到正确的标签?
您可以尝试为左侧标签 (lbl1
) 设置最小宽度约束,然后将约束连接到 ViewController
.
然后在加载或 willAppear 或任何其他相关操作时,确定 lbl1
的最小宽度并将其设置为约束常量。
然后在视图出现之前,它应该将右侧标签更新为正确的宽度,而不会截断左侧的标签。
有关确定标签大小的参考,请参阅此答案:
你可以使用这个属性来减小字体大小不是问题
解决此问题的正确方法是更改其中一个标签的内容拥抱优先级。默认情况下,它设置为 251。只需将其中一个标签的 Content Hugging Priority 更改为 250 或 252,具体取决于您想要的 "hugged"。
在code中:
func setContentHuggingPriority(_ priority: UILayoutPriority,
for axis: NSLayoutConstraint.Axis)
或界面生成器:
如果您需要有关此主题的更多信息,请查看此 post:https://medium.com/@abhimuralidharan/ios-content-hugging-and-content-compression-resistance-priorities-476fb5828ef
如果您不介意较小的字体,您可以使用 UILabel().adjustsFontSizeToFitWidth = true
。