动态调整视图大小时自动布局约束中断(拖动动作)

时间:2015-05-11 14:23:45

标签: ios resize autolayout constraints

我有一个夹在两个其他视图之间的视图,中间视图的高度可以通过平移手势改变。

我使用手势识别器获取触摸位置并将值提供给中间视图的高度约束,以使其动态调整大小。

一个问题是当触摸位置超出中间视图的边界并与顶视图或底视图重叠时,我收到警告:

  

无法同时满足约束......

     

将尝试通过违反约束来恢复

这并没有真正引起任何实际问题,但万一它可能会导致一个大问题,我想知道是否

a)使用高度约束来动态改变高度是正确的 b)有任何方法可以避免记录该警告

谢谢!

1 个答案:

答案 0 :(得分:2)

回答你的问题:

a)是的,这是更新视图高度的正确方法

b)是的,有办法摆脱警告

由于您的视图获得高度限制的负值,您可以添加高度检查,以便您永远不会为其设置负值。然后,您不再拥有错误日志。

不确定您是否也支持iOS 7,但如果您支持iOS 7,则该应用很可能因布局错误而崩溃。

所以,我的建议是在你更新约束的地方加上这样的东西:

[self.heightConstraint setConstant:MAX(0, value)];

祝你的项目好运!