Ios 自动布局:Y位置作为两个值的最大值

Ios 自动布局:Y位置作为两个值的最大值,ios,objective-c,autolayout,Ios,Objective C,Autolayout,我有一个按钮playButton和两个UIView,myView1和myView2,它们的位置在执行过程中可能会改变 我希望playButton的顶部比UIView1或UIView2的底部低10个单位,以较大的值为准(再向下) 如何使用代码中的自动布局来表示这一点?我尝试将一个约束设置为大于或等于,但似乎没有效果。这里有一种思考方法:创建一个约束,即“播放按钮”的顶部大于或等于myView1加10的底部,另一个约束是“播放按钮”的顶部大于或等于myView2加10的底部,然后是第三个约束,即pl

我有一个按钮playButton和两个UIView,myView1和myView2,它们的位置在执行过程中可能会改变

我希望playButton的顶部比UIView1或UIView2的底部低10个单位,以较大的值为准(再向下)


如何使用代码中的自动布局来表示这一点?我尝试将一个约束设置为大于或等于,但似乎没有效果。

这里有一种思考方法:创建一个约束,即“播放按钮”的顶部大于或等于myView1加10的底部,另一个约束是“播放按钮”的顶部大于或等于myView2加10的底部,然后是第三个约束,即playButton的顶部以低优先级位于共享superview的顶部

这两个按钮将确保按钮位于两个视图下方。然而,这留下了歧义。按钮可以位于两者下方的任何位置。第三个约束本身无法满足,但自动布局系统将尝试尽可能接近。这就解决了模棱两可的问题。按钮将尽可能靠近顶部,同时仍位于两个视图下方

这实际上可以简化。你们可以把一个不等式和低优先级的等式结合起来。有一个约束,即播放按钮的顶部大于或等于myView1的底部加上10。第二个约束是,playButton的顶部等于myView2的底部加上10,但优先级较低


如果myView1的底部低于myView2,则第一个约束要求playButton低于它。第二个约束无法满足,但系统试图尽可能接近myView2的底部。这将使按钮尽可能高,同时仍低于myView1的底部。如果myView2的底部低于myView1,则第二个约束将直接确定按钮的位置。第一个约束也得到了满足,因为它是一个不等式。

肯托马斯答案的说明:

视图1->蓝色

视图2->红色

视图3->粉红色

视图1和视图3之间的约束:大于或等于20,优先级为1000。

视图2和视图3之间的约束:等于20,优先级为999。

肯在回答中解释了这项工作。看看吧

如果视图1大于视图2

如果视图2大于视图1


一个约束用于将按钮顶部到视图1底部的距离设置为大于10,另一个约束用于将按钮顶部到视图2底部的距离设置为大于10?我尝试了,但收到了关于模糊性的警告。肯·托马斯的回答解决了这个问题。谢谢。你说得对,我刚才正在处理第三个约束条件。:)简单但伟大的答案!!