我正在将应用转换为iOS7。整个应用程序中的所有视图底部都有一个44px的空白区域,似乎是底部工具栏或其他东西,但我不是要显示底部工具栏。此空间也存在于具有底部工具栏的视图上,工具栏仅显示在其上方。
显示的红色空间实际上是黑色视图背后的视图。无论我将黑色视图的框架设置为什么尺寸,都会显示红色空间。我也隐藏了plist中的状态栏,因此不知道这是否是一个神器,或者它是否与导航栏有关,因为它们通常都是44px高。
我查看过渡指南,但没有发现任何有效的内容。有什么想法导致这种情况以及如何解决?
更新 我试过设置edgesForExtendedLayout = UIRectEdgeAll和extendedLayoutIncludesOpaqueBars = YES(也尝试NO)没有效果。当我查看导航控制器的子视图时,它将UIToolBar显示为隐藏,但显示它包含视图在视图拒绝调整大小的确切区域中的框架,即使使用自动布局约束也是如此。
更新2: 这实际上是ViewDeckController(https://github.com/Inferis/ViewDeck)的问题以及它设置中心视图边界的方式。
答案 0 :(得分:1)
我认为这与UINavigationBar
有关。尝试在Storyboard中切换以下选项,看看它是否解决了问题。即,“扩展边缘”选项:
也可以在UIViewController上使用edgesForExtendedLayout
和extendedLayoutIncludesOpaqueBars
属性的代码中设置这些选项。
答案 1 :(得分:1)
如果要转换到iOS 7,则应使用“自动布局”约束来锚定到底部布局指南。控制从视图拖动到底部布局指南,然后从弹出菜单中选择“垂直空间”。
在iOS 7中使用框架更难,而且是过去的方式。
一开始很难掌握自动布局,但是一旦你感觉到它就非常强大。
答案 2 :(得分:1)
这实际上是第三方库ViewDeckController(https://github.com/Inferis/ViewDeck)的问题以及它为IIViewDeckControllerIntegrated设置centerViewBounds的方式。在更改为IIViewDeckControllerContained并正确查看视图大小后,我能够弄明白。
在IIViewDeckController.m中,只需返回iOS7的self.referenceBounds,就像它对IIViewDeckControllerContained一样。