0
我有以下设置:a UIView
包含UILabel
和UIButton
。 UIButton
有固定的尺寸(它并不重要)。然而,UILabel
受到视图边界的限制。如何使用AutoLayout配置视图宽度固定宽度和可变高度
我希望能够设置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);
但是这改变两者的高度和视图的宽度,不保持宽度所需的值。
有没有一个优雅的方法来做到这一点?
在此先感谢您的帮助?
现在你的代码无关,支持自动布局。你在问如何用自动布局来实现这一点?如果是这样,你为什么发布该代码?顺便说一句。你将视图的宽度设置为'fittingSize.width',并想知道为什么它会影响视图的宽度?你为什么不''self.view.frame = CGRectMake(0,0,desiredWidth,fittingSize.height);'' – Tobi
UIView具有自动布局约束来布局UILabel和UIButton相对于它们的边界。 我无法直接设置'desiredWidth',因为它必须匹配'fittingSize.height'。 (例如,如果'fittingSize.width'非常小,'fittingSize.height'需要超高) – Kamchatka
那么为什么你把它们从我们这里隐藏起来呢? :P – Tobi