我遇到UILabels
的问题,其中包含分布在多行的文字。它嵌套在具有UIView
掩码的全屏autoresizing
中:
view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
我想在标签
上添加autoresizingMask label.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth;
但问题是,这不起作用,因为我希望它起作用。如果我这样做,在旋转屏幕(改变视图大小)后,标签的高度较小,一些文本被切断。 (它不显示整个文本)。如果我不添加UIViewAutoresizingFlexibleHeight
,那么旋转后的标签在文本上方和下方都有很大的间隙(我不希望这样)。
我也尝试添加UIViewAutoresizingFlexibleBottomMargin
,但这没有用,因为仍然没有显示整个文字。
修改
我真的不认为Autoresizing Masks会解决这个问题 - > autoresizing mask根据superview中的大小变化调整视图大小。这就是为什么高度不适合文本。我能想到的唯一解决方案是在调整superview大小后重置UILabel
帧。如果我错了,我很乐意得到纠正。
答案 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];