【问题标题】:Autolayout: Hiding a UIView without knowing Height constraint自动布局:在不知道高度约束的情况下隐藏 UIView
【发布时间】:2015-02-19 16:14:48
【问题描述】:

我的UIViewController 中有 2 个视图(比如 topViewbottomView),顶部是 topView。两个视图都随着aspect ratio 约束而增长。 topViewbottomView 之间有 0 个垂直空间。我想在特定情况下隐藏bottomView。但问题是我没有可用的height 约束。我在topViewbottomView 之间只有垂直空间约束。所以我决定将bottomView 移到topView 下。我尝试在视图控制器的viewDidLayoutSubViews 中进行以下操作

self.verticalSpaceConstraint.constant = -1*[bottomView intrinsicContentSize].height;

self.verticalSpaceConstraint.constant = -1*[bottomView bounds].size.height;

intrinsicSize 始终返回 (1,1),bounds 始终返回 (0,0,320,568)。我怎样才能做到这一点呢?

【问题讨论】:

    标签: ios objective-c swift autolayout


    【解决方案1】:

    您可以同时向视图添加高度约束(常量值为 0)和纵横比约束,但这些约束应该具有不同的优先级,并且优先级为 1000(必需)。然后隐藏视图只需以编程方式设置纵横比约束的优先级低于高度约束,反之亦然以显示它。希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 2010-10-25
      相关资源
      最近更新 更多