2013-10-03 59 views
0

我有一个UILabels问题,其中包含分散在多行上的文本。它嵌套在一个全屏UIViewautoresizing面具,以及:带多行和自动调整大小掩码的UILabel(UIViewAutoresizingMask)

view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; 

我想补充autoresizingMask标签上

label.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; 

但问题是,这并不为我的工作d喜欢它的工作。如果我这样做,在旋转屏幕(改变视图的大小)后,标签的高度变小,部分文本被剪掉。 (它不显示整个文本)。如果我不添加UIViewAutoresizingFlexibleHeight,那么旋转后的标签在文本上方和下方存在大的间隙(我不希望这样)。

我也尝试添加UIViewAutoresizingFlexibleBottomMargin,但这并没有帮助,因为仍然没有显示整个文本。

编辑: 我真的不认为会自动调整大小面具要解决这个问题 - >自动尺寸口罩根据上海华尺寸的变化调整视图。这就是为什么身高不适合文字。我能想到的唯一解决方案是在超级视图重新调整大小后重置UILabel框架。如果我错了,我很乐意得到纠正。

回答

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

感谢您的意见。不幸的是,这段代码并不适合我。此外,我不知道文本会有多少行 - >如果设备处于纵向方向,则会传播更多行,因为行会更窄。如果设备处于横向模式,则线条较长,因此需要较少的线条。 – Lukas1

0

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

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

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

+0

不,因为我在构建UILabel时没有问题,当它在原始框架中显示时,没关系。旋转屏幕后出现问题。但我几乎可以肯定,自动调整口罩并不能解决这类问题,而且实际上使问题变得更糟。可能唯一的解决方案是重写一些UILabel方法。 – Lukas1