如何将两个按钮与 UIView 的中心等距对齐
Posted
技术标签:
【中文标题】如何将两个按钮与 UIView 的中心等距对齐【英文标题】:How to align two buttons equidistance from the centre of the UIView 【发布时间】:2015-02-26 05:52:22 【问题描述】:我正在使用自动布局。面对有趣的问题。幸运的是暂时克服了它,但需要知道解决它的最佳方法。
问题: 如上图所示,我有几个按钮。两者都需要放置在距 UIView 中心等距离的宽度处(粗体垂直线是视图的中心)。此外,我必须以自动调整按钮之间距离的方式应用约束。例如距离应为设备宽度的 25%。如果我的设备宽度为 320,则按钮之间的距离为 80 像素,依此类推。
解决方法(我试过了):
对于上述问题,我尝试了解决方案。如图所示,我在 UIView 中的虚拟视图上添加了虚拟视图的宽度等于两个按钮之间的间距。然后我将约束应用于虚拟视图。如:1. Horizontal centre of the UIView 2.Width equals to the UIView width with 0.25 as a multiplier
问题: 上述解决方案对我来说非常有效。但是如果将来如果我的视图有太多复杂的元素,那么添加虚拟视图可能不是一个好主意。那么,还有其他干净的方法可以做到这一点吗?
【问题讨论】:
【参考方案1】:我遇到了同样的问题。我使用从 rdelmar 的回答中得到的想法解决了。
这就是我所做的。
左键:
-
将约束添加到“居中 - 水平放置在容器中”
然后将该约束的乘数更改为 0.5 而不是 1。
右键:
-
将约束添加到“居中 - 水平放置在容器中”
然后将该约束的乘数更改为 1.5 而不是 1。
让我知道它是否对你有用。
【讨论】:
我认为这很聪明 :) 谢谢eestein! :)【参考方案2】:您可以在情节提要(或 xib)中通过对屏幕右边缘使用约束来执行此操作 - 右边缘的值与屏幕宽度相同,因此您可以将其用于计算。对于左按钮,您希望其后沿等于超级视图的右边缘乘以 0.375(0.5 减去 0.125,这是您要求的 25% 的一半)。右侧按钮的前沿等于 superview 的右侧边缘乘以 0.625 (.5 + .125)。
约束看起来像这样,
【讨论】:
【参考方案3】:尝试将 btn2 的前缘和 btn1 的后缘与视图的中心 y 对齐设置常量为 0,乘数分别为 200:160 和 120:160,其中中心 y 是第二项
【讨论】:
以上是关于如何将两个按钮与 UIView 的中心等距对齐的主要内容,如果未能解决你的问题,请参考以下文章