Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将UILabel设置为屏幕宽度和高度以适合包含的文本_Ios_Objective C_Uilabel_Autolayout - Fatal编程技术网

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

Ios 将UILabel设置为屏幕宽度和高度以适合包含的文本,ios,objective-c,uilabel,autolayout,Ios,Objective C,Uilabel,Autolayout,我正在尝试布局我的应用程序的详细视图。视图有一个标题、一些信息和描述。我想将标题标签和描述标签的宽度设置为屏幕的宽度,并将这些标签的高度设置为适合标签内容的高度。我还希望整个视图滚动,如果内容的高度太大,无法在屏幕上显示 我目前有一个在视图中带有标签的xib,它具有自动布局约束来定位对象,并将标题标签和描述标签的宽度设置为包含视图的大小。该视图位于UIScrollView中,但没有任何约束。我在属性检查器中设置标签以容纳多行。在viewDidLoad方法中,我使用内容和滚动视图内容大小和帧设置视

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

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


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

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


要使标签成为屏幕的宽度,从标签到它的容器应该是一个简单的约束。但是,如果标签位于滚动视图内,则可能必须将标签约束为与滚动视图具有相同的宽度,因为将标签约束到滚动视图的前缘和后缘会将其约束到滚动视图的内容视图,它根据包含的视图而增长。

您可以通过故事板自动布局完成的所有任务。您需要将标签宽度设置为单元格内容视图的宽度。要创建标签和单元格的动态高度,需要正确设置单元格底部的约束。将行数设置为0有助于标签的高度。但是,在滚动视图容器上设置宽度约束则更具挑战性。我从标签的前缘到容器和后缘到容器的约束开始;但是,这并没有像预期的那样限制标签的宽度。相反,我必须约束标签的宽度,使其等于包含滚动视图的宽度。这是为什么?因为约束在滚动视图的内容视图上,并且内容视图会增长到内部的大小(即使您不允许它滚动,它的溢出只是“隐藏”)。