2

我正在将应用程序转换到 iOS7。整个应用程序中的所有视图在底部都有一个 44px 的空白空间,似乎是用于底部工具栏或其他东西,但我不想显示底部工具栏。该空间也存在于具有底部工具栏且工具栏直接显示在其上方的视图上。

显示的红色空间实际上是黑色视图后面的视图。无论我将黑色视图的框架设置为什么尺寸,始终显示红色空间。我还将状态栏隐藏在 plist 中,所以不知道这是否是一个工件,或者它是否与导航栏有关,因为它们通常都是 44px 高。

我查看了过渡指南,但没有发现任何有效的方法。关于可能导致此问题以及如何解决的任何想法?

更新: 我尝试设置 edgesForExtendedLayout = UIRectEdgeAll 和 extendedLayoutIncludesOpaqueBars = YES(也尝试过 NO)但没有效果。当我查看导航控制器的子视图时,它显示 UIToolBar 为隐藏状态,但显示它在视图的确切区域中包含一个框架,即使有自动布局约束,视图也拒绝调整大小。

更新 2: 这实际上是 ViewDeckController ( https://github.com/Inferis/ViewDeck ) 及其设置中心视图边界的问题。

在此处输入图像描述

4

3 回答 3

1

我相信这与UINavigationBar. 尝试在 Storyboard 中切换以下选项,看看是否能解决问题。即,“扩展边缘”选项:

在此处输入图像描述

这些选项也可以在代码中使用 UIViewController 上的edgesForExtendedLayoutextendedLayoutIncludesOpaqueBars属性进行设置。

于 2013-10-02T16:21:54.910 回答
1

这实际上是第三方库 ViewDeckController ( https://github.com/Inferis/ViewDeck ) 的问题,以及它为 IIViewDeckControllerIntegrated 设置 centerViewBounds 的方式。在更改为 IIViewDeckControllerContained 并查看正确大小的视图后,我能够弄清楚。

在 IIViewDeckController.m 中,只为 iOS7 返回 self.referenceBounds,就像对 IIViewDeckControllerContained 一样。

于 2013-10-02T18:31:50.600 回答
1

如果您正在过渡到 iOS 7,您应该使用 Auto Layout 约束来锚定到底部布局指南。控制从视图拖动到底部布局指南,然后从弹出菜单中选择垂直空间。

在 iOS 7 中使用框架更难,而且是过去的方式。

Auto Layout 一开始很难掌握,但是一旦你感觉它就非常强大。

于 2013-10-02T16:26:18.917 回答