我在尝试使用自动布局实现一些非常基本的布局行为时遇到了麻烦。我的视图控制器在 IB 中看起来像这样:
最上面的标签是标题标签,不知道会有多少行。我需要标题标签来显示所有文本行。我还需要将另外两个标签和小图像放在标题的正下方,不管它有多高。我已经设置了标签和小图像之间的垂直间距约束,以及标题标签与其父视图之间的顶部间距约束以及小图像与其父视图之间的底部间距约束。白色的 UIView 没有高度限制,因此它应该垂直拉伸以包含其子视图。我已将标题标签的行数设置为 0。
如何让标题标签调整大小以适应字符串所需的行数?我的理解是我不能使用 setFrame 方法,因为我使用的是自动布局。而且我必须使用自动布局,因为我需要那些其他视图保持在标题标签下方(因此有约束)。
我怎样才能做到这一点?
使用-setPreferredMaxLayoutWidth和UILabel自动布局应该处理其余的。
-setPreferredMaxLayoutWidth
UILabel
[label setPreferredMaxLayoutWidth:200.0];
请参阅有关 preferredMaxLayoutWidth 的 UILabel 文档。
更新:
只需将heightstoryboard中的约束设置为Greater than or equal to,无需设置PreferredMaxLayoutWidth。
height
Greater than or equal to