UILabel在autolayout中更改宽度时出现问题

时间:2016-03-16 09:06:34

标签: swift autolayout uilabel

我试图以编程方式更改UILabel的宽度。

我知道我可以做到这一点
UILabel.frame.size = CGRectMake(x, y, width, height)

但我不想设置x和y值,以便它适用于每个手机型号。有什么建议来过来吗?

3 个答案:

答案 0 :(得分:1)

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

这篇文章How to set UILabel only width and height and constraints programatically,是针对objective-c编写的,应该让您了解如何解决这个问题。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

尝试:

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