将UILabel设置为屏幕宽度和高度以适合包含的文本

时间:2014-12-06 23:33:03

标签: ios objective-c uilabel autolayout

我正在尝试布局应用程序的详细视图。该视图具有标题,一些信息和描述。我想将标题标签和描述标签的宽度设置为屏幕的宽度以及这些标签的高度以容纳标签的内容。如果内容的高度太大而无法放在屏幕上,我还希望整个视图滚动。

我目前在视图中有一个带有标签的xib,使用自动布局约束来定位对象,并将标题标签和描述标签的宽度设置为包含视图的大小。该视图位于UIScrollView中,但没有任何约束。我设置标签以适应属性检查器中的多行。我在viewDidLoad方法中使用内容和滚动视图内容大小和框架设置视图的宽度。

目前我无法将标签设置为屏幕宽度和自动容纳文本的高度。我是在正确的道路上还是我需要尝试不同的方法?

1 个答案:

答案 0 :(得分:2)

要容纳内部文本的高度,请使用0作为UILabel中的行数。这会根据里面的文字自动增长。您还需要将UIScrollView中最后一个元素的约束添加到滚动视图的底部,以避免模糊的内容大小。

要使标签成为屏幕的宽度,它应该是从标签到其容器的直接约束。但是,如果标签位于滚动视图中,则可能必须将标签约束为与滚动视图具有相同的宽度,因为将标签约束到滚动视图的前缘和后缘会将其限制为滚动视图&#39 ; s内容视图,根据其包含的视图增长。