2013-04-29 55 views
0

我有一个UIView只包含一个UILabel。这个UILabel用来显示一些可能长度不同的信息。我使用[label.text sizeWithFont:label.font constrainedToSize:label.bounds.size lineBreakMode:label.lineBreakMode]方法计算UILabel的高度。但如何根据UILabel的高度调整UIView的高度?如何根据UILablel的高度来改变UIView的高度?

回答

2
[label.superview setFrame:label.frame]; 

原则上应该这样做。您可能需要添加更多逻辑并在其中创建一些边距/填充。意思是您必须将self.frame分成坐标,添加一些偏移量,并使用CGFrameMake创建一个新框架,然后将其分配给superviews框架。

[label.superview setFrame: CGFrameMake(0, 0, label.frame.size.width + 2*label.frame.origin.x, label.frame.size.height + 2*label.frame.origin.y)]; 

把第二个作为一个消化。它会将原点设置为0,因为标签的框架可能不为0.然后,假设左边距和右边距相同,上边距和下边距相同,则会为标签周围的某个边距增加空间。

+0

谢谢。我用第二个。有效。 – Geek 2013-04-29 07:49:35

相关问题