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