2

我为 iPhone5 开发了一个应用程序,我启用了使用自动布局。我为每个按钮占用了 40 个垂直空间到另一个按钮。当我在 iPhone4s 上运行这个应用程序时,最后一个按钮没有出现。I.如何在 4s 中运行时减小垂直间距。在此处输入图像描述

这是它在 iphone 4s 中的外观

4

3 回答 3

2

如果您不想在代码中执行此操作,则必须在具有“等高”约束且没有明确高度的按钮之间添加一些隐藏的“间隔”视图。他们将适当地扩展/收缩以正确间隔按钮。

在此处输入图像描述

于 2013-08-21T07:42:59.893 回答
2

您需要在每个按钮之间使用间隔视图。这样,您可以使用取决于屏幕高度的可变空间大小。

像这样的东西...

@"V:|[_spacer1][_button1][_spacer2(==_spacer1)][_button2][_spacer3(==spacer1)][_button3]...[_lastSpacer(==spacer1)]|"

然后,这将布局所有按钮,它们之间的间距相等。但是之间的空间会根据屏幕的高度而变化。

于 2013-08-21T07:05:28.993 回答
0

正如其他人所描述的,虽然您可以使用透明/隐藏UIView的对象作为垫片,但这不是必需的。您还可以以编程方式创建约束,通过明智地使用multiplier提供给constraintWithItem方法的值来均匀地间隔它们。例如,如果您有一个UIButton对象数组,您可以使用以下方法垂直分隔它们:

[buttons enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [self.view addConstraint:[NSLayoutConstraint constraintWithItem:obj
                                                          attribute:NSLayoutAttributeCenterY
                                                          relatedBy:NSLayoutRelationEqual
                                                             toItem:self.view
                                                          attribute:NSLayoutAttributeCenterY
                                                         multiplier:2.0 * (idx + 1.0)/([buttons count] + 1.0)
                                                           constant:0.0]];
}];
于 2013-08-21T08:26:25.733 回答