我在使用Autolayout和约束来调整UIView的大小时遇到了问题。 我想改变原点(小于或等于原始)和宽度(大于或等于原始)但我得到了这个:不等式约束歧义
你有解决这个问题的想法吗?
感谢
答案 0 :(得分:54)
我尝试为3.5英寸显示器制作超过1个垂直间距约束缩小,因此我不得不在我希望在较小屏幕上缩小的组件之间制定2个约束。一个约束是不等(大于或等于)我指定的最小值所需大小,1000优先级,其他约束是具有特定大小的等式约束,适用于4“屏幕,但优先级较低为250。
这样Xcode就会停止投诉并在较小的屏幕上正确地重新定位布局。
答案 1 :(得分:6)
您的视图水平模糊。您没有足够的水平约束信息,系统只能为您的视图层次结构提供一个解决方案。在这种情况下,它无法确定视图大小或左边距需要基于当前约束信息。
您需要向视图的宽度添加一个小于所需优先级(< 1000)约束 ,为其定义宽度或添加等式约束到你的左边距约束。通过使新约束成为< 1000优先级,它将使新约束能够与您现有的不等式约束(这是必需的约束)正确混合。这里的another question与你的不平等相似。
视图的大小会有所不同,具体取决于您是将新约束添加到视图的宽度还是视图的左边距。这一切都取决于您希望布局在响应更改时的行为方式。
答案 2 :(得分:1)
这对编译器(逻辑上)没有意义,因为无法知道程序是应该更改x还是宽度。制作两个静态之一将解决您的问题。
答案 3 :(得分:0)
首先,您必须知道要对约束做什么,请删除大于等于约束的约束,该约束不会使场景具有小于等于约束。 buz视图需要定义宽度约束。要么优先考虑哪个约束扮演角色优先(大于等于约束或小于等于约束)。