5

我正在使用 Xcode 4.5 和 iPhone 4 和 5 模拟器,Interface Builder 会在屏幕的上半部分添加一个带有顶部约束的 UIButton,并在屏幕的下半部分添加一个带有底部约束的 UIButton。

它在 iPhone 5 模拟器上运行良好,但在 iPhone 4 模拟器上,按钮可能重叠,或者底部按钮甚至可能位于顶部按钮上方。

我认为这是由于约束,例如底部按钮“必须距离底部边距 250 点”。我无法删除约束,如果将其更改为“250 点或更少”,它将不起作用,如果将其更改为“250 点或更多”,它也将不起作用。

有没有办法:

1)让它没有约束,但只是绝对x和y的位置?(或者说过去的春天怎么样,让 iPhone 5 的一切都间隔得更远了?)

2) 将NIB 设置为仅适用于iPhone 4 和4S 的NIB,以便该应用程序在iPhone 4 和4S 上运行良好,而在iPhone 5 上只是“黑边”。

3) 让它在 iPhone 5 上运行良好并且在 iPhone 4 上运行良好?

如果您只知道上述 (1)、(2) 或 (3) 的解决方案,请无论如何都给出解决方案,因为它仍然是过渡期的可行解决方案。

实际上很容易重现:使用 Xcode 4.5 创建一个简单的 Single View 应用程序,然后将一个按钮拖到屏幕中心点上方,另一个按钮拖到屏幕中心点下方。然后在模拟器上运行它。在 iPhone 5 上,它是:

在此处输入图像描述

现在停止应用程序,并将模拟器中的设备更改为 iPhone 4S(3.5 英寸 Retina)。如果您不先停止应用程序,模拟器可能会崩溃。现在再次运行应用程序,按钮将重叠:

在此处输入图像描述

4

3 回答 3

6

我遇到了同样的问题,这是由于自动调整大小设置错误。要更改自动调整大小,请单击界面构建器中的控件,转到尺寸检查器。

请注意自动调整大小网格中的粗体红色 I,它们控制屏幕大小调整时的位置(例如从 iPhone 3GS 转到 iPhone 5 时)。

从左下角自动调整大小

我认为如果你让你的自动调整看起来像这样,它会最适合你:

从左上角自动调整大小

于 2012-10-10T14:02:56.597 回答
0

选择您的按钮并为它们添加“垂直间距”约束。并为顶部/底部边距设置“小于”。

于 2012-09-23T14:42:23.890 回答
0
  1. 我不确定,因为我没有使用基于约束的布局(并且在我们放弃对 iOS 5 的支持之前不会使用)。传统的基于 NIB 的自动调整大小将执行绝对坐标。
  2. 据我所知,你不能只在一个屏幕上这样做——你可以通过删除Default-568h@2x.png.
  3. 我会选择程序化布局,或者如果你想要简单的方法(维护起来会很痛苦),不同的笔尖适用于不同的屏幕尺寸。请注意,您还需要正确处理通话状态栏...

编辑:将两个按钮放在容器视图中并使约束中心成为其父容器内的容器?它不会调整按钮之间的间距,但在两种设备上看起来都还可以。

于 2012-09-23T03:45:24.470 回答