确定UIView容器大小而不自动调整大小

时间:2014-05-27 11:55:09

标签: ios uiview nsautolayout

我正在以编程方式在iOS 7中使用自动布局。我有一个动态视图组件,它充当多个子视图的容器。目前尚不知道容器应该容纳多少个子视图,只是视图的宽度与其子视图的宽度相等,高度是动态的,具体取决于将有多少个子视图。

= ContainerView的界限

 =======
 = SV1 =
 = SV2 =
 = SVn =
 = ... =
 =======

由于我以编程方式执行所有Autolayout,因此我需要一种方法来告诉容器视图它应该是CGSize x big。如何使用Autolayout进行此操作并且不进行自动调整?

2 个答案:

答案 0 :(得分:1)

只要所有子视图在-intrinsicContentSize中指定有效的垂直尺寸,您就可以使用此功能(例如,Apple的控件默认执行此操作。)然后,将子视图的顶部和底部固定到每个另外,SV1的顶部到容器的顶部,而SVn的底部到容器的底部。然后容器将始终是它包含的视图的高度。

答案 1 :(得分:0)

毕竟,我将NSLayoutConstraint的-constraintWithItem:...中的乘数设置为我在视图中预期的项目数。我不得不设置一些其他约束,但至少它的工作方式和我想象的一样。我仍然希望解决我的问题的代码更少的解决方案(相当于只设置autoresizingmask,一个单行)。