我有一个观点,在里面我有一个UILabel。我希望视图根据文本的长度更改其宽度。
我尝试的是首先在我的UILabel上执行SizeToFit()
,希望这会改变它的框架,然后将标签框架放入视图的框架中。
这不起作用,我猜是因为自动布局限制。
这是我试过的代码:
private func example(){
self.labelInsideView.sizeToFit()
viewThatContainsLabel.frame = labelInsideView.frame
self.layoutIfNeeded()
}
这似乎很明显,这不会起作用,因为我非常确定合适的尺寸不会改变框架。有没有办法实现这个目标?
答案 0 :(得分:1)
制作IBOutlet
宽度约束的UIView's
,然后只需将宽度约束常量更改为宽度UILabel
self.labelInsideView.sizeToFit()
self.widthConstraintOfView.constant = labelInsideView.frame.size.width
self.layoutIfNeeded()
答案 1 :(得分:0)
为什么你甚至使用这个功能。您的视图应该有约束。
Leading = Top = Bottom = 8,Trailing> = 20
您的标签应具有等于5的所有约束。
现在尝试在Label中添加任何文本,您将获得视图的更新框架而不使用此功能。试试这个。