0

我有一个问题UILabels,包含分布在多行上的文本。它嵌套在一个UIView也有autoresizing掩码的全屏中:

    view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;

我想在标签上添加 autoresizingMask

    label.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;

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

我也尝试添加UIViewAutoresizingFlexibleBottomMargin,但这无济于事,因为仍然没有显示整个文本。

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

4

2 回答 2

0

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

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

编辑:它是 [self.label sizeToFit];

于 2013-10-03T19:13:56.087 回答
0
 self.label.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
    self.label.numberOfLines = 10;
于 2013-10-03T09:55:01.183 回答