UIView
中包含两个UIView
。这些子视图具有垂直边距约束。他们的身高是不变的。
如果两个高度限制都等于0,我希望我的边距完全消失。
如果我的一个高度等于0,我想保留第二个子视图的垂直间距。
我该怎么做?
不同答案 0 :(得分:0)
这里最好的选择是以编程方式更改约束。为每个约束创建IBOutlet
,并将它们连接起来。从那里,您可以为每个约束的高度设置一个观察者(使用addObserver:forKeyPath:options:context:
方法),并在一个或两个高度等于0时适当地更改垂直间距约束(您可以通过覆盖{来实现此目的)处理这些视图的视图控制器中的{1}}方法。
不要忘记删除其中一个清理方法中的观察者(如果在Swift中为observeValueForKeyPath:ofObject:change:context:
,或者在ObjC中为deinit
,则为视图控制器)。
答案 1 :(得分:0)
您可以为边距赋予等于其超视图的相等高度约束,但使乘数小于1.0。另外两个视图会将所有方面都固定在父级和边距视图上。您可以在IB中完成所有操作,它将起作用。