首页 文章

文本更改时UILabel缩小

提问于
浏览
4

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

enter image description here

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

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

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

enter image description here

那么如何让设备的标签高度缩小,以便在文本周围贴合?

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

2 回答

  • 0

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

  • 0

    第1步:子类UILabel .

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

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

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

    这对我有用 .

相关问题