我在带有故事板的 Xcode 5 中使用 UINavigationBar (没有导航控制器),我的项目工作正常,没有重叠状态栏,因为 ios 7 状态栏结构已更改为透明度。
我尝试了几种方法来修复重叠(对我来说没有好结果)。我认为 Apple 推动开发人员使用导航控制器(非常法西斯,如“国家社会主义”公司)
有没有办法在没有导航控制器类的情况下修复 ios 7 中的重叠?
谢谢 ...
我在带有故事板的 Xcode 5 中使用 UINavigationBar (没有导航控制器),我的项目工作正常,没有重叠状态栏,因为 ios 7 状态栏结构已更改为透明度。
我尝试了几种方法来修复重叠(对我来说没有好结果)。我认为 Apple 推动开发人员使用导航控制器(非常法西斯,如“国家社会主义”公司)
有没有办法在没有导航控制器类的情况下修复 ios 7 中的重叠?
谢谢 ...
周围有很多答案,每个答案都定义了特定的行为。在您的情况下,您可能需要设置edgesForExtendedLayout
. 在你的 VC 子类中写:
- (UIRectEdge) edgesForExtendedLayout {
return UIRectEdgeNone;
}
这定义了您的 VC 在 Apple 容器 VC 中的行为方式,例如UITabbarController
or UINavigationController
,UIRectEdgeNone
表示不低于导航栏、标签栏或两者。
该解决方案也适用于 ios6,因为从未调用过 iOS6 中的此方法。如果这样做self.edgesForExtendedLayout
会在 iOS6 上崩溃,因为该方法不受支持。我建议你使用除了硬编码视图或窗口框架的方法之外的所有方法,你永远不知道苹果接下来会做什么。