【发布时间】:2016-03-16 09:06:34
【问题描述】:
我正在尝试以编程方式更改 UILabel 的宽度。我知道我可以做到这一点
UILabel.frame.size = CGRectMake(x, y, width, height)
但我不想设置 x 和 y 值,以便它适用于每个手机型号。有什么建议可以解决这个问题吗?
【问题讨论】:
标签: swift autolayout uilabel
我正在尝试以编程方式更改 UILabel 的宽度。我知道我可以做到这一点
UILabel.frame.size = CGRectMake(x, y, width, height)
但我不想设置 x 和 y 值,以便它适用于每个手机型号。有什么建议可以解决这个问题吗?
【问题讨论】:
标签: swift autolayout uilabel
不需要为 UILabel 的宽度和高度添加约束,因为它们具有固有的内容大小,这取决于文本、字体、字体大小等属性...
这篇文章 How to set UILabel only width and height and constraints programatically 是为 Objective-c 编写的,应该让您了解如何解决这个问题。
【讨论】:
您正在更改框架,这意味着您没有正确使用自动布局。
如果您使用自动布局并且想要更改标签宽度,我希望您在标签上设置宽度约束并更改其constant 属性,然后请求更新布局。
如果您确实应用了约束,请记住它们以编程方式接管框架,因此您的新框架可能会在布局更新后再次设置为其初始值。
【讨论】:
试试:
let newWidth: CGFloat = 100.0 //However wide you want your label to be
myLabel.frame.size.width = newWidth
【讨论】: