Autolayout:在不知道高度约束的情况下隐藏UIView

时间:2015-02-19 16:14:49

标签: ios objective-c swift autolayout

我的topView中有2个观看(例如bottomViewUIViewController),其中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)。我怎么能实现这个呢?

1 个答案:

答案 0 :(得分:4)

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