【问题标题】:Collapsing UIView when using AutoLayout使用 AutoLayout 时折叠 UIView
【发布时间】: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


【解决方案1】:

您现在可能已经解决了这个问题,但是为 C 的顶部连接到 A 的低端设置一个,并使其优先级低于另一个将 C 的顶部连接到 B 的低端的优先级。然后隐藏/显示。

【讨论】:

    猜你喜欢
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    相关资源
    最近更新 更多