不等式约束歧义

时间:2014-03-08 14:52:01

标签: ios objective-c ios7 constraints autolayout

我在使用Autolayout和约束来调整UIView的大小时遇到​​了问题。 我想改变原点(小于或等于原始)和宽度(大于或等于原始)但我得到了这个:不等式约束歧义

你有解决这个问题的想法吗?

感谢

view error

constraints error

4 个答案:

答案 0 :(得分:54)

我尝试为3.5英寸显示器制作超过1个垂直间距约束缩小,因此我不得不在我希望在较小屏幕上缩小的组件之间制定2个约束。一个约束是不等(大于或等于)我指定的最小值所需大小,1000优先级,其他约束是具有特定大小的等式约束,适用于4“屏幕,但优先级较低为250。

这样Xcode就会停止投诉并在较小的屏幕上正确地重新定位布局。

enter image description here

答案 1 :(得分:6)

您的视图水平模糊。您没有足够的水平约束信息,系统只能为您的视图层次结构提供一个解决方案。在这种情况下,它无法确定视图大小左边距需要基于当前约束信息。

您需要向视图的宽度添加一个小于所需优先级(< 1000)约束 ,为其定义宽度添加等式约束到你的左边距约束。通过使新约束成为< 1000优先级,它将使新约束能够与您现有的不等式约束(这是必需的约束)正确混合。这里的another question与你的不平等相似。

视图的大小会有所不同,具体取决于您是将新约束添加到视图的宽度还是视图的左边距。这一切都取决于您希望布局在响应更改时的行为方式。

答案 2 :(得分:1)

这对编译器(逻辑上)没有意义,因为无法知道程序是应该更改x还是宽度。制作两个静态之一将解决您的问题。

答案 3 :(得分:0)

  

首先,您必须知道要对约束做什么,请删除大于等于约束的约束,该约束不会使场景具有小于等于约束。 buz视图需要定义宽度约束。要么优先考虑哪个约束扮演角色优先(大于等于约束或小于等于约束)。