您好我正在开发小型IOS应用程序,其中我正在使用带有自动布局的scrollview。内部滚动我正在添加两个视图。我正在使用IB和自动布局约束。我以纵向方式一个接一个地添加两个视图。我添加了外部约束,如尾随,前导,顶部,底部空间。我还为两个视图添加了高度限制。直到这一切都运转良好。
但我的view1有一些动态内容。出于这个原因,我想使高度约束大于等于而不是等于。
那么如何解决这个问题。需要一些帮助。谢谢。
答案 0 :(得分:22)
您应该遵循以下方法。 首先,这里有一些关于滚动视图的重要事项,这对于自动布局非常重要:
UIScrollView
自动更改其边界。UIScrollView
需要一个内容视图(在用户界面中)来获取滚动的内容大小,这对于自动布局来说非常顺畅。UIScrollView
的顶部和底部约束应该连接到顶部和底部布局指南(对于大多数情况,不是全部)。根据您的问题:
第一种方法:您有UIScrollView
,因此只需在其中插入一个UIView
并将其视为内容视图。之后,将两个UIViews
放入UIView
(内容视图)。
所以层次结构是:MainView
- > UIScollView
- > UIView
(ContentView) - > firstView&第二视图。现在我们将为所有人提供约束。
UIScrollView
,将TOP和BOTTOM约束连接到TOP&底部布局指南以及主视图的引导和跟踪。UIView
(内容视图),将约束LEADING,TRAILING,TOP,BOTTOM赋予UIScrollView以及为适合滚动的contentView提供显式高度(正常高度约束)非常重要(例如1200)。同时使其在容器中水平居中。第二种方法(简单和简单):按照第一点给出约束后,为了动态更改第一个View的高度,您可以创建一个第一个视图的高度约束的IBOutlet到您的类,并根据您的要求,您可以更改约束的任何方法或按钮操作中的常量值(根据您想要的第一个视图的高度),因此它将在运行时更改。你也可以认为这是一个很好的技巧,当你想要隐藏你的视图,所以只需将它们的高度约束常量更改为0,这样它将隐藏,并在取消隐藏时,再次将相同的常量值设置为所需的值,这样你也可以轻松玩隐藏和取消隐藏功能的视图,这在其他方面的自动布局中有点困难。
答案 1 :(得分:0)
我会将此约束设为类型equals
,并将其置于低优先级。然后,在添加动态内容期间,您可以添加具有更高优先级的另一个约束。
如果从xib加载此UIView,请确保提供具有更高优先级的约束。