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