我有一个包含containerView(灰色)的视图,其中包含一个UILabel(蓝色)。
我有布局约束,使得containerView总是比每边的标签大8个像素,并且containerView的边框左/上/右是固定的。当设备方向改变时,容器视图会适当拉伸。
标签的numberOfLines属性设置为0.我在代码中设置标签的文本。正如预期的那样,标签的高度会增加以容纳文本。
问题在于:当我将设备旋转到横向时,标签的宽度会增加到适合屏幕的可用宽度,文本将适合2行。但UILabel并没有缩小它的高度以适应文本。注意标签中文本上方和下方的额外空格。
那么如何让设备旋转到贴合文本时,标签的高度会缩小呢?
我尝试在[myLabel sizeToFit]
方法中调用viewWill/DidLayoutSubviews
,但这没有明显效果。
答案 0 :(得分:0)
检查标签是否具有指定固定高度的约束:NSLog(@"%@", label.constraints);
答案 1 :(得分:0)
第1步:UILabel的子类。
步骤2:将标签的自定义类设置为标签子类。
第3步:覆盖自定义类中的-layoutSubviews
。
步骤4:在重写方法中,调用[self sizeToFit];
这对我有用。