4

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

在此处输入图像描述

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

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

问题是:当我将设备旋转到横向时,标签的宽度会增长到适合屏幕的可用宽度,并且文本将适合 2 行。但是 UILabel 不会缩小其高度以紧贴文本。请注意标签中文本上方和下方的额外空间。

在此处输入图像描述

那么如何通过旋转设备使标签的高度缩小以紧贴文本?

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

4

2 回答 2

0

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

于 2012-12-15T00:09:07.593 回答
0

第 1 步:子类 UILabel。

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

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

第 4 步:在被覆盖的方法中,调用[self sizeToFit];

这对我有用。

于 2014-06-04T16:54:57.467 回答