在3.5屏幕中运行4屏幕应用程序时使用自动布局

时间:2013-08-21 06:58:02

标签: iphone ios autolayout

我为iPhone5开发了一个应用程序我启用了使用自动布局。我已经将每个按钮的垂直空间40带到另一个按钮。当我在iPhone4s上运行这个应用程序时,最后一个按钮没有出现.I。如何在4s.enter中运行图像说明时减少垂直间距

This is how it looks in iphone 4s

3 个答案:

答案 0 :(得分:2)

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

像这样......

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

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

答案 1 :(得分:2)

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

enter image description here

答案 2 :(得分:0)

虽然您可以使用透明/隐藏UIView对象作为间隔符,但正如其他人所描述的那样,这不是必需的。您还可以通过编程方式创建约束,通过合理使用提供给constraintWithItem方法的multiplier值来均匀地区分它们。例如,如果您有一个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]];
}];