约束的奇怪行为,iOS8

时间:2015-05-11 10:29:05

标签: ios objective-c autolayout

我在superview上有两个根视图。

enter image description here

我从代码中添加的所有视图和约束。顶视图有H:| -0- [view] -0- |。相同的vfl代码有底视图。接下来,顶视图从顶部到顶部,从第二个视图的底部到顶部,第二个底部连接到底部。代码是V:| -0- [topView] -0- [secondView] -0- |。

第二个视图具有固有高度,因此两个视图的高度取决于此值。当我改变底部视图高度和动画layoutIfNeed时,一切正常。 接下来,底部视图有一些子视图。底部是简单的视图 - 容器,顶部是按钮。它们都连接到左/右,如H:| -0- [view] -0- |。底视图也具有固有高度,因此垂直连接就像外部视图一样,没有(!)将按钮连接到superview顶部(V:[button] -0- [secondView] -0- |)。第二个视图从下到下是附加的,但是当我动画改变这个容器的高度时,它的子视图在iOS 8上排名第一。

fine bad

查看层次结构

hierarchy

约束:

H:|-0-[topView]-0-|
H:|-0-[bottomView]-0-|
V:|-0-[topView]-0-[bottomView(110)]-0-|

H:|-0-[buttonBackCamera]-0-|
H:|-0-[grayView]-0-|
V:[buttonBackCamera]-0-[grayView(85)]-0-| //here is constraint, that MUST attach grayView to bottom. 

调试时,我注意到,该约束是附加的,活动的,它必须有效,但是:(。

对此有何想法?

更新

我已经在iOS 8.3上检查了这一点,一切正常。

2 个答案:

答案 0 :(得分:0)

确保底部视图包含从“前导”到“超级视图”,“跟踪到超级视图”和“从下到下”指南的约束。 如果你仍然面临任何问题,那就去吧,

-(void)viewWillLayoutSubviews
{
  [self.view layoutIfneeded];
}

答案 1 :(得分:0)

我认为我没有完全解决问题,但我建议您检查所选的大小类和每个已启用约束的大小等级。 enter image description here