【发布时间】:2014-09-19 02:27:00
【问题描述】:
在使用 Autolayout 时隐藏 UIView 的最简单(和通用)方法是什么?
在我的视图中,我添加 UIScrollView 以使其填满整个屏幕,然后添加包含其他视图(如按钮、标签等)的 CustomUIView。
我知道将高度常数设置为 0 并且视图似乎被隐藏的技巧 - 这对我来说是完美的。只有一个但是。当我在 CustomUIViews 上将高度设置为 0 时,我会收到很多自动布局警告,因为里面的 UIViews 也有一些高度和间距限制。
有什么好办法可以做我想做的事吗?
【问题讨论】:
-
可以再次删除和添加自定义视图吗?
-
可以,但是我必须删除并添加对周围视图的约束 - 这是我要避免的。
-
周围的景色是什么意思?
-
假设我有 3 个视图 ViewA、ViewB、ViewC。它们垂直布局,水平填充屏幕。 ViewA 被限制在屏幕的顶部,ViewB 被限制在 ViewA 的底部,ViewC 被限制在 ViewB 的底部。现在我想隐藏 ViewB,所以我必须修复 ViewC 上的约束。
-
有一种方法可以获得所需的结果,如下所示,一旦将视图的高度设置为 0,您必须通过设置 NSLayoutConstraints 的 active 属性来停用视图的子视图约束,然后您就不会收到任何自动布局的警告。但是,您需要为可以枚举和停用它的所有其他约束创建出口。
标签: ios objective-c uiview autolayout