0

我有一个 Xcode 4.5.2 项目我有一个带有四个 UIView 的故事板。自动布局在 StoryBoard 部署中设置为 ON 是 iOS 6

我希望在 iPhone 5 上运行时信箱出现在顶部和底部,并且在 iPhone5 上运行时不调整视图大小

当我在 iPhone5 中运行我的应用程序时 - 我没有看到 letterBox - UIViews 会自动拉伸(不正确)

当我在 iPhone 4 上运行应用程序时 - 一切都符合预期。

为什么信箱没有按我的预期显示?

4

1 回答 1

1

如果出于某种原因您希望您的应用程序在 iPhone 5 上的行为方式与旧应用程序一样——由操作系统自动将信箱化为 3.5 英寸的屏幕尺寸,请不要在您的应用程序中包含 Default-568h@2x.png。但是,Apple 希望提交到 App Store 的新应用程序支持 4 英寸屏幕,因此如果您希望以这种方式分发您的应用程序,那么您可能不会在此策略上走得太远。

如果您想“支持”iPhone 5(和 iPod touch 第 5 代)屏幕,但将大部分 UI 保留在旧屏幕尺寸……好吧,您的用户可能不喜欢它(App Store 评论者也可能不喜欢),但可以使用自动布局。问题是窗口(或者更确切地说,视图控制器)视图层次结构中的根视图总是会自动调整大小以适应屏幕 - 但没有人说它必须是实际 UI 内容的主要容器。

  1. 在 IB 中,使用 3.5 英寸屏幕模式的编辑器,将新的 UIView 拖放到视图控制器的根视图中。它应该自动调整大小以填充屏幕(460 点高)。

  2. 添加一个Pin > Height约束,这样无论其父视图如何调整大小,视图都保持 460 点高。

  3. 在 Container约束中添加一个Align > Vertical Center,以便在其父视图的高度发生变化时视图保持居中。

  4. 将你所有的 UI 放在这个视图中。

现在,在 iPhone 5 上,您的 UI 上方和下方会出现白条(如果您愿意,可以更改根视图的颜色)。

请注意,这仅在您的 UI 不旋转到横向时才有效。我不认为你可以只使用一组约束对两个方向进行这种人工信箱,所以如果你想支持旋转,你需要通过以编程方式切换约束来响应方向变化——引脚高度和纵向居中,大头针宽度居中,横向居中。

于 2013-02-13T17:57:29.280 回答