在 UIView 中动态居中对齐多个不同大小的 UIButton

Posted

技术标签:

【中文标题】在 UIView 中动态居中对齐多个不同大小的 UIButton【英文标题】:Center align multiple UIButtons of varying sizes, dynamically in a UIView 【发布时间】:2015-10-26 12:15:22 【问题描述】:

我有一个 UIView,我想在其中动态添加一些不同大小的“n”按钮,所以通常它们是线性添加的。我可以一次将所有按钮居中对齐吗?还是我必须计算来设置每个按钮的原点?

如果我必须进行计算,这是我想到的:

算法

    用原点计算框架并添加一个按钮。 左移上一个按钮到计算的数量 重复

改变大小不同的按钮变得非常困难。

请让我知道是否有内置方法可以让我居中对齐视图的所有子视图,或者我应该做一些数学运算。

我偶然发现了一些 SOF 链接,但很少有任何帮助

【问题讨论】:

***.com/questions/33016648/… 这可能会有所帮助 如果您想自己进行计算,使用center 属性似乎是最短的方法,否则您可能需要使用自动布局。 我建议你使用 AutoLayout。 @shial:你能帮我提供一些从哪里开始的链接吗?还有很少的输入我将如何做到这一点。 @Masood 学习教程 raywenderlich.com/115440/… itunesu.itunes.apple.com/WebObjects/LZDirectory.woa/ra/… 【参考方案1】:

如果您希望这些按钮均匀分布并在这种情况下居中对齐,您可以使用以下堆栈溢出问题 Link

【讨论】:

【参考方案2】:

这段代码将遍历一个视图的所有子视图,并设置 x 原点,使子视图居中:

for (UIView *view in yourView.subviews) 
    CGRect newFrame = view.frame;
    newFrame.origin.x = (CGRectGetWidth(myUIView.frame)-CGRectGetWidth(newFrame))/2;
    view.frame = newFrame;
  

【讨论】:

以上是关于在 UIView 中动态居中对齐多个不同大小的 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

将两个不同大小的 UIView 水平居中

居中对齐子视图 UIview 在中心

如何在容器(UIView)内居中对齐 2 个 UIView,而不将它们放在 UIView 内

UILabel 对齐并将一个视图移动到不同大小类中的另一个视图

使用 Swift 3 Xcode 8 居中对齐多个标签

无法在 uiview 中动态居中自定义 uibutton