Con*_*nor 7 objective-c ios autolayout
我有一个按钮playButton和UIViews,myView1和myView2,它们的位置可能会在执行期间发生变化.我希望playButton的顶部比UIView1底部或UIView2底部低10个单位,取较大的值(进一步向下).我如何在代码中使用自动布局来表达这一点?我尝试将一个约束设置为更大或相等但似乎没有效果.
Ken*_*ses 11
这是考虑它的一种方法:创建一个约束,即playButton的顶部大于或等于myView1加10的底部,另一个约束,即playButton的顶部大于或等于myView2加10的底部,并且然后是第三个约束,即playButton的顶部位于低优先级的共享超级视图的顶部.
这两个不等式将确保按钮位于两个视图之下.然而,这留下了歧义.按钮可以位于两者之下的任何位置.第三个约束不能这样满足,但自动布局系统将尽可能地接近.这解决了歧义.按钮将尽可能靠近顶部,同时仍在两个视图下方.
这实际上可以简化.您可以将其中一个不等式与低优先级相等结合起来.有一个约束,即playButton的顶部大于或等于myView1加10的底部.有第二个约束,即playButton的顶部等于 myView2的底部加10,但优先级较低.
如果myView1的底部低于myView2,那么第一个约束要求playButton低于它.第二个约束不能满足,但系统尝试尽可能接近myView2的底部.这使得按钮尽可能高,同时仍然低于myView1的底部.如果myView2的底部低于myView1,则第二个约束直接确定按钮的位置.第一个约束也得到满足,因为它是一个不平等.
肯托马斯回答的插图:
view1-> 蓝色
视图 2-> 红色
视图 3-> 粉红色
视图1和视图3之间的约束:大于等于20,优先级为1000。
视图 2 和视图 3 之间的约束:等于 20,优先级为 999。
肯在他的回答中解释了这项工作。看看吧。
如果视图 1 大于视图 2
如果视图 2 大于视图 1
| 归档时间: |
|
| 查看次数: |
964 次 |
| 最近记录: |