UILabel 在自动布局中更改宽度时出现问题



我正在尝试以编程方式更改UILabel的宽度。我知道我可以通过以下方式做到这一点

UILabel.frame.size = CGRectMake(x, y, width, height)

但我不想设置 x 和 y 值,以便它适用于每种手机型号。有什么建议可以克服这一点吗?

不需要

为 UILabel 的宽度和高度添加约束,因为它们具有固有的内容大小,这取决于文本、字体、字体大小等属性......

这篇文章,如何以编程方式设置UILabel的宽度和高度以及约束,为objective-c编写,应该让你知道如何解决这个问题。

您正在更改框架的事实意味着您没有正确使用自动布局。
如果您使用的是自动布局并且想要更改标签宽度,我希望您在标签上设置宽度约束并更改其constant属性,然后请求布局更新。
如果确实应用了约束,请记住它们以编程方式接管帧,因此在布局更新后,新帧可能会再次设置为其初始值。

尝试:

let newWidth: CGFloat = 100.0 //However wide you want your label to be
myLabel.frame.size.width = newWidth

最新更新