【发布时间】:2013-09-19 20:08:29
【问题描述】:
我的应用是针对 iOS 6 SDK 编译的(还没有时间升级到 iOS 7 SDK)。所以我只是注意到Default 图像与状态栏重叠。这似乎仅在“多任务”视图中发生,但由于某种原因从后台恢复我的应用时不会发生。
看这张图片:
【问题讨论】:
标签: iphone objective-c cocoa-touch ios6 ios7
我的应用是针对 iOS 6 SDK 编译的(还没有时间升级到 iOS 7 SDK)。所以我只是注意到Default 图像与状态栏重叠。这似乎仅在“多任务”视图中发生,但由于某种原因从后台恢复我的应用时不会发生。
看这张图片:
【问题讨论】:
标签: iphone objective-c cocoa-touch ios6 ios7
我认为根本不会有多少人会注意到这一点。
但是,据我所知,当应用程序进入后台时,您可能会禁用状态栏。 为此,只需在委托中使用此方法:
- (void)applicationWillResignActive:(UIApplication *)application {
//code to disable statusbar
}
在applicationDidBecomeActive 方法中,您可以再次启用状态栏。
- (void)applicationDidBecomeActive:(UIApplication *)application {
//code to enable the statusbar
}
此外,您可以查看之前提出的问题:Status bar won't disappear
如果您有任何问题,请随时提出!
【讨论】:
edgesForExtendedLayout 为 iOS 7 提供了诀窍。但是,如果您跨 iOS 7 SDK 构建应用程序并将其部署到 iOS 6 中,导航栏将显示为半透明,并且视图位于其下方。因此,要为 iOS 7 和 iOS 6 修复它,请执行以下操作:
self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;
if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
self.edgesForExtendedLayout = UIRectEdgeNone; // iOS 7
【讨论】: