不等式约束歧义

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

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

谢谢

查看错误

约束错误

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

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

在此处输入图像描述

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

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

视图的大小会有所不同,具体取决于您是将新约束添加到视图的宽度还是视图的左边距。 这一切都取决于您希望布局如何响应变化。

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

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