UINavigationController 旋转时在底部留下 12px 的间隙

Posted

技术标签:

【中文标题】UINavigationController 旋转时在底部留下 12px 的间隙【英文标题】:UINavigationController leaves 12px gap at bottom when rotated 【发布时间】:2013-12-02 10:08:45 【问题描述】:

我有一个非常简单的应用程序:一个 UIPageViewController 包裹在一个 UINavigationController 中,显示 4 个 UIViews,带有 4px 红色边框。

过渡样式设置为scroll,边框为23pt。

问题是,当我将模拟器旋转为横向格式时,底部有一个最初不应该存在的 12pt 间隙。视图应该占据整个屏幕。

当我滚动到下一页时,视图会跳到底部并正确布局。

当我省略导航视图控制器时,一切都正确布局。

在检查视图层次结构时,我看到一个_UIQueuingScrollView,其边界为

x: 504
y: →12←
width:504 height: 320

我在这里错过了什么?

截图(红色边框应该在底部):

复制:

    下载 PhotoScroller 示例项目https://developer.apple.com/library/ios/samplecode/PhotoScroller/Introduction/Intro.html 打开主故事板,选择页面视图控制器 编辑器 > 嵌入 > 导航控制器 运行并旋转模拟器

【问题讨论】:

【参考方案1】:

它与“调整滚动视图插图”属性有关,您可以在 xib 中打开/关闭。

只需在 Interface Builder 中关闭 Page View Controller 的这个选项,它就会按您的预期工作。

【讨论】:

以上是关于UINavigationController 旋转时在底部留下 12px 的间隙的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController 工具栏和设备方向(旋转)

UINavigationController 的子视图中调用的旋转方法?

UITabBarController 中的 UINavigationController 在 iOS 6 中不会旋转

UITabBarController/UINavigationController 旋转问题

旋转后 UINavigationController 中的 UITableView 在导航栏下

UINavigationController 旋转时在底部留下 12px 的间隙