在 iOS 6 中使用 Auto Layout 在 superview 中均匀分布相同大小的 UIView

Posted

技术标签:

【中文标题】在 iOS 6 中使用 Auto Layout 在 superview 中均匀分布相同大小的 UIView【英文标题】:Evenly Space UIViews of equal sizes in superview using Auto Layout in iOS 6 【发布时间】:2013-04-22 11:01:25 【问题描述】:

我需要使用自动布局将一系列按钮均匀地放置在超级视图中。 在这里,我想保持子视图的大小相同,只有子视图的中心会被放置在它们之间有相等数量的空间。

注意:我不想设置超级视图的大小,我希望每件事都是自动布局的。

请帮忙, 我被卡住了!!

谢谢!!

【问题讨论】:

【参考方案1】:

您可以创建与按钮一样多的UIView,并将按钮在视图中居中,视图可以背靠背对齐,使用以下代码:

[constraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[view1][view2][view3]|"
                                                                         options:0
                                                                         metrics:nil
                                                                           views:views]];

确保您首先使用以下方法从超级视图中删除现有约束:

[self.view removeConstraints:self.view.constraints];

并在 viewDidLoad 中关闭自动调整大小转换:

[self.view setTranslatesAutoresizingMaskIntoConstraints:NO];

【讨论】:

感谢您的回复!但在这里我不希望视图一个接一个地放置(前导尾随),但应该以这样的方式隔开,使它们看起来沿着宽度均匀分布,它们之间有共同的间隙。 是的,这就是为什么你将按钮放在视图中的中心,这样它们就会均匀分布。视图是背靠背的,按钮在其中居中。 是的,我的做法与您建议的解决方法相同。 但我想在自动布局环境中必须有某种方法可以在没有额外视图的情况下实现它。 但这将使用视图之间的标准边距,对吗?您将如何定制?

以上是关于在 iOS 6 中使用 Auto Layout 在 superview 中均匀分布相同大小的 UIView的主要内容,如果未能解决你的问题,请参考以下文章

IOS 6和Auto Layout自定义按钮高度错误

iOS屏幕适配方案-Auto Layout

iOS 开发实践之 Auto Layout

iOS 开发实践之Auto Layout(From Vincent Sit)

Xcode 6 Auto Layout - 所有设备的 UI 元素之间的恒定水平间距

使用Auto Layout中的VFL(Visual format language)--代码实现自动布局