但我的view1有一些动态内容.出于这个原因,我想使高度约束大于等于而不是等于.
那么如何解决这个问题呢.需要一些帮助.谢谢.
解决方法
首先,这里有一些关于滚动视图的重要事项,这对于自动布局很重要:
> UIScrollView自动更改其边界.
> UIScrollView需要一个内容视图(在UI中)来获取滚动的内容大小,这对于自动布局来说非常顺利.
> UIScrollView的顶部和底部约束应该连接到顶部和底部布局指南(对于大多数情况,不是全部).
根据你的问题:
第一种方法:你有UIScrollView,所以只需在其中插入一个UIView并将其视为内容视图.之后将你的两个UIViews放在UIView(内容视图)中.
所以层次结构是:MainView – > UIScollView – > UIView(ContentView) – > firstView&第二视图.现在我们将给所有人提供约束.
>对于UIScrollView,将TOP和BOTTOM约束连接到TOP&底部布局指南以及主视图的引导和跟踪.
>对于UIView(内容视图),将约束LEADING,TRAILING,TOP,BOTTOM赋予UIScrollView非常重要,并为contentView提供适合滚动的显式高度(正常高度约束)(例如1200).也使它在容器中水平居中.
>现在为第一个视图提供约束:LEADING,TOP到ContentView并给出明确的高度(正常高度约束).现在不要试图将其修改为大于平等 – 我们稍后会这样做.然后,约束第二个视图领先,跟踪到ContentView,从顶部到FirstView,从底部到内容视图和显式高度(你想要什么).现在,尝试从等于修改第一个视图的高度约束 – >大于平等 – 它肯定会奏效.
第二种方法(简单和简单):在按照第一点给出约束后,为了动态更改第一个View的高度,您可以为您的类创建第一个视图的高度约束的IBOutlet,并根据您的要求,您可以更改约束的常量值(根据你想要的任何方法或按钮动作的第一个视图的高度,所以它将在运行时更改.你也可以认为这是一个很好的技巧,当你想要隐藏你的视图,所以只需将它的高度约束的常量更改为0,这样它将隐藏,并在取消隐藏时,再次将相同的常量值设置为所需的值,这样你也可以轻松玩隐藏和取消隐藏功能的视图,从其他方面在自动布局中有点困难.