【问题标题】:How do I fix empty 44px space in iOS7 view with ViewDeckController?如何使用 View Deck Controller 修复 iOS 7 视图中的 44px 空白空间?
【发布时间】:2013-10-02 16:15:46
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: objective-c xcode ios7 viewdeck iiviewdeckcontroller


    【解决方案1】:

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

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

    【讨论】:

    • 我试过设置 edgesForExtendedLayout = UIRectEdgeAll 和 extendedLayoutIncludesOpaqueBars = YES(也试过 NO)没有效果。当我查看导航控制器的子视图时,它显示 UIToolBar 为隐藏状态,但显示它在视图拒绝调整大小的确切区域中包含一个框架。
    【解决方案2】:

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

    在 iOS 7 中使用框架更加困难,并且已成为过去的方式。

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

    【讨论】:

    • 忘了提到我也尝试了自动布局,但没有成功。这似乎是导航控制器工具栏的问题。工具栏已隐藏,但视图未调整大小。就像它认为它在它不存在时一样。
    【解决方案3】:

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

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

    【讨论】:

    • 这个答案你应该得到不止一分,IMO。我的状态栏有这个问题。我知道它与 ViewDeckController 有关,但无法确定。感谢您可能为我节省的时间!
    猜你喜欢
    • 2019-03-17
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-04
    • 2014-11-22
    • 1970-01-01
    相关资源
    最近更新 更多