UILabel有多行和自动调整大小的掩码(UIViewAutoresizingMask)

时间:2013-10-03 09:44:14

标签: iphone ios objective-c uilabel autoresizingmask

我遇到UILabels的问题,其中包含分布在多行的文字。它嵌套在具有UIView掩码的全屏autoresizing中:

    view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;

我想在标签

上添加autoresizingMask
    label.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;

但问题是,这不起作用,因为我希望它起作用。如果我这样做,在旋转屏幕(改变视图大小)后,标签的高度较小,一些文本被切断。 (它不显示整个文本)。如果我不添加UIViewAutoresizingFlexibleHeight,那么旋转后的标签在文本上方和下方都有很大的间隙(我不希望这样)。

我也尝试添加UIViewAutoresizingFlexibleBottomMargin,但这没有用,因为仍然没有显示整个文字。

修改 我真的不认为Autoresizing Masks会解决这个问题 - > autoresizing mask根据superview中的大小变化调整视图大小。这就是为什么高度不适合文本。我能想到的唯一解决方案是在调整superview大小后重置UILabel帧。如果我错了,我很乐意得到纠正。

2 个答案:

答案 0 :(得分:0)

 self.label.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
    self.label.numberOfLines = 10;

答案 1 :(得分:0)

你不能只在标签上使用fitToSize(或任何版本)方法吗?只需记住将行数设置为0。

self.label.numberOfLines = 0;
[self.label fitToSize];

编辑:[self.label sizeToFit];