在UIView中居中多个元素

时间:2015-01-21 17:42:55

标签: ios objective-c uiview

我在父视图中有四个UIButtons,彼此相邻。最左边和最右边的一个将永远被粉碎到父视图的两侧,但我不确定如何使用约束来定位中间的两个按钮。

我希望它看起来像:

______________________

[b1]  [b2]  [b3]  [b4]
______________________

xy的常规约束,我可以将b1b2放在正确的位置,但b2和{{1需要一些魔力。 通过对它们使用约束,告诉它们坚持每一面,它在风景中(或在更大的屏幕上)看起来像这样:

b3

没有相等的间距。我需要的是像'灵活空间'这样的东西,用于UIBarButton,但是在常规视图中。因为我找不到那样的东西,我猜测有一些约束 - 我需要理解的魔法。

我可以让按钮足够大,以便它们都被约束在一起(所以______________________________ [b1] [b2] [b3] [b4] ______________________________ b2正在接触,并且它们都具有相同的宽度),但我不希望这样。我想解决方案可能是创建这些尺寸的四个“容器”视图(大到足以相互接触)并简单地将每个按钮放在每个UIView的中心。但这真的有必要吗?感觉就像这样的浪费..

1 个答案:

答案 0 :(得分:0)

您可以添加UIViews,其中需要三个灵活空间:

–––––––––––––––––––––––––
[b1] * [b2] * [b3] * [b4]
–––––––––––––––––––––––––

然后,对于每个间隔视图(用*表示),添加约束,使得尾随和前导空间为0,并为它们提供恒定的高度。最后,添加另一个约束以使其所有宽度相等。这样,无论屏幕的宽度如何,每个按钮之间的间距总是相等的。然后,您可以将间隔视图设置为透明,这样它们就不会出现在您的布局中。