故事板:相对于视图高度更改间距

时间:2016-05-16 18:32:50

标签: ios autolayout storyboard interface-builder constraints

UIView中包含两个UIView。这些子视图具有垂直边距约束。他们的身高是不变的。

如果两个高度限制都等于0,我希望我的边距完全消失。

如果我的一个高度等于0,我想保留第二个子视图的垂直间距。

我该怎么做?

正常设置。垂直间距良好,高度与0

不同

高度等于0.但我仍然有垂直间距约束。我的容器视图也应该有0高度

2 个答案:

答案 0 :(得分:0)

这里最好的选择是以编程方式更改约束。为每个约束创建IBOutlet,并将它们连接起来。从那里,您可以为每个约束的高度设置一个观察者(使用addObserver:forKeyPath:options:context:方法),并在一个或两个高度等于0时适当地更改垂直间距约束(您可以通过覆盖{来实现此目的)处理这些视图的视图控制器中的{1}}方法。

不要忘记删除其中一个清理方法中的观察者(如果在Swift中为observeValueForKeyPath:ofObject:change:context:,或者在ObjC中为deinit,则为视图控制器)。

答案 1 :(得分:0)

您可以为边距赋予等于其超视图的相等高度约束,但使乘数小于1.0。另外两个视图会将所有方面都固定在父级和边距视图上。您可以在IB中完成所有操作,它将起作用。