防止 UILabel 截尾

Prevent a UILabel from truncating tail

我有两个 UILabel名称描述。约束设置如下:

当我 运行 程序时,不一致,有时 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