如何使用AutoLayout配置视图宽度固定宽度和可变高度

时间:2014-04-24 22:25:53

标签: ios cocoa-touch uiview autolayout uikit

我有以下设置:UIView包含UILabelUIButtonUIButton具有固定的维度(它并不重要)。但是,UILabel受到视图边界的限制。

我希望能够设置UIView的宽度,并且它应自动调整大小以使其高度允许整个标签内容可见。

我尝试了以下内容:

self.view.frame  = CGRectMake(0, 0, desiredWidth, 0);
CGSize fittingSize = [self.view systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
self.view.frame = CGRectMake(0, 0, fittingSize.width, fittingSize.height);

但这会改变视图的高度和宽度,而不会将宽度保持在所需的值。

有一种优雅的方法吗?

提前感谢您的帮助吗?

1 个答案:

答案 0 :(得分:0)

在AutoLayout中,您需要为超视图添加视图的宽度,顶部,底部,前(左)和/或后(右)约束,并至少为顶部和/或底部约束声明属性。添加上述约束后,您可以通过调整顶部和/或底部约束常量值来更改视图的高度。

以下是“自动布局指南”的链接。

Auto Layout Guide: Introduction