iOS 7 - 状态栏与视图重叠我有一个ViewController在里面UINavigationcontroller,但导航栏是隐藏的。当我在iOS 7上运行应用程序时,状态栏显示在我的视图之上。有办法避免这种情况吗?我不想编写任何特定于操作系统的代码。我试着设置View controller-based status bar appearance到NO,但它并没有解决这个问题。
3 回答
浮云间
TA贡献1829条经验 获得超4个赞
如果您根本不想要任何状态栏,则需要使用以下数据更新plist:要在plist中执行此操作,请添加以下两个设置:
<key>UIStatusBarHidden</key><true/><key>UIViewControllerBasedStatusBarAppearance</key><false/>
在iOS 7中,您需要设计一个覆盖透明状态栏的应用程序。例如,请参阅新的iOS 7天气应用程序。
不负相思意
TA贡献1777条经验 获得超10个赞
这是UIViewController
iOS 7上的默认行为。视图将全屏显示,这意味着状态栏将覆盖视图的顶部。
如果你有一个UIViewController
内部的UINavigationController
和的导航栏是可见的,你可以有下面的代码在你的viewDidLoad
或有背景图片的导航栏做的伎俩。
self.edgesForExtendedLayout = UIRectEdgeNone;
如果您隐藏了navigationBar,则必须通过移动20个点来调整所有UIView元素。我没有看到任何其他解决方案。使用自动布局会有所帮助。
以下是用于检测iOS版本的示例代码,如果您想要向后兼容。
NSUInteger DeviceSystemMajorVersion() { static NSUInteger _deviceSystemMajorVersion = -1; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ NSString *systemVersion = [UIDevice currentDevice].systemVersion; _deviceSystemMajorVersion = [[systemVersion componentsSeparatedByString:@"."][0] intValue]; }); return _deviceSystemMajorVersion;}
- 3 回答
- 0 关注
- 913 浏览
添加回答
举报
0/150
提交
取消