文本更改时UILabel缩小

时间:2012-12-10 20:52:28

标签: ios6 rotation uilabel autolayout

我有一个包含containerView(灰色)的视图,其中包含一个UILabel(蓝色)。

enter image description here

我有布局约束,使得containerView总是比每边的标签大8个像素,并且containerView的边框左/上/右是固定的。当设备方向改变时,容器视图会适当拉伸。

标签的numberOfLines属性设置为0.我在代码中设置标签的文本。正如预期的那样,标签的高度会增加以容纳文本。

问题在于:当我将设备旋转到横向时,标签的宽度会增加到适合屏幕的可用宽度,文本将适合2行。但UILabel并没有缩小它的高度以适应文本。注意标签中文本上方和下方的额外空格。

enter image description here

那么如何让设备旋转到贴合文本时,标签的高度会缩小呢?

我尝试在[myLabel sizeToFit]方法中调用viewWill/DidLayoutSubviews,但这没有明显效果。

2 个答案:

答案 0 :(得分:0)

检查标签是否具有指定固定高度的约束:NSLog(@"%@", label.constraints);

答案 1 :(得分:0)

第1步:UILabel的子类。

步骤2:将标签的自定义类设置为标签子类。

第3步:覆盖自定义类中的-layoutSubviews

步骤4:在重写方法中,调用[self sizeToFit];

这对我有用。