模态视图控制器在 iOS 7 上工作,在 iOS 6 上留下一个空白

Posted

技术标签:

【中文标题】模态视图控制器在 iOS 7 上工作,在 iOS 6 上留下一个空白【英文标题】:Modal view controller works on iOS 7, leaves a gap on iOS 6 【发布时间】:2013-09-27 23:37:59 【问题描述】:

所以我有这个自定义 UIViewController 子类,我以-presentViewController:animated: 模态呈现(不将其推送到导航堆栈上)。我正在尝试让它在 ios 6 和 iOS 7 上都能很好地运行。

所述 VC 内置于 .xib 文件中(不涉及情节提要)。我在那里有一个自定义导航栏,以及其他一些 UI 元素。当我在 iOS 7 中运行它时,我得到了这个:

看起来是正确的;我的自定义 nag bar 正确地邻接状态栏。

但是,当我在 iOS 6 中运行相同的东西时,我得到:

请注意状态栏和我的自定义导航栏之间的黑色间隙(即视图的背景)。 :(

在 .xib 文件中,我将视图的内容从视图顶部向下移动了 20 个像素; 并且我将视图的“iOS 6/7 Deltas”用于 deltaY 设置为“-20”。这显然是行不通的。

我在这里错过了什么?!

【问题讨论】:

【参考方案1】:

视图的“iOS 6/7 Deltas”的效果取决于“Interface Builder Document”检查器中指定的“View as”设置(选择“ View' -> 'Utilities' -> 'Show Utilities',然后单击实用程序窗格顶部最左侧的图标并查看负责的 'Interface Builder Document' 部分的 'View as' PopUpList)。

调整您的“iOS 6/7 Deltas”以适应当前显示的 iOS 版本(例如,如果您已将 'View as' 设置为 'iOS7 和更高版本',调整 'iOS 6.1 和更早版本'的增量)。

因此,您的 "-20" deltaY 设置只有在您将 'View as' 设置为 'iOS 7.0 及更高版本 时才是正确的em>'。一旦您的设置正确,您就可以使用“View as”PopUpList,您的 VC 将永远看起来正确。

希望,这会有所帮助。

【讨论】:

以上是关于模态视图控制器在 iOS 7 上工作,在 iOS 6 上留下一个空白的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7:出现模态视图控制器时限制设备当前方向

如何使用 iOS 7 自定义转换在顶部呈现半模态视图控制器

iOS 7:模态视图控制器状态栏颜色错误,但普通视图控制器正确

模态视图控制器从自定义单元格选择问题中分离 - iOS 7

iOS - 目前的模态视图控制器会导致一些动画伪影(iPhone)

iOS 7 在 UINavigationController 中呈现模式视图?