如何防止我的iPhone应用与我的应用重叠?我希望应用程序屏幕在状态栏下面开始,就像在iOS7之前的iOS版本中一样。
下图显示了一个演示应用示例,其中应用与状态栏重叠,标记为蓝色。
答案 0 :(得分:2)
您可以使用Cordova插件StatusBarPlugin更改状态栏叠加层。您可以设置以下方法在iOS7的状态栏下方启动应用程序:
StatusBar.overlaysWebView(false);
如果您使用的是phonegap-build,则可以直接添加StatusBarPlugin
或者您也可以通过将webview偏移20px直接在MainViewController.m中的Objective-C中执行此操作:
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
CGRect appView = [self.webView bounds];
appView.origin.y = 20;
appView.size.height = appView.size.height - 20;
self.webView.frame = appView;
}
答案 1 :(得分:0)
您可以尝试创建这样的类别
#define SYSTEM_VERSION_OF_DEVICE_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
@implementation UIViewController (iOS7)
{
-(void)viewDidLayoutSubviews
{
if (!SYSTEM_VERSION_OF_DEVICE_LESS_THAN(@"7.0"))
{
CGRect viewBounds=self.view.bounds;
CGFloat topBarOffset=self.topLayoutGuide.length;
viewBounds.origin.y=topBarOffset*-1;
self.view.bounds=viewBounds;
}
}
@end
答案 2 :(得分:0)
我知道您标记了Cordova但是如果您有权访问ViewController,则显示Cordova内容,然后在viewDidLoad中添加以下内容。
if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)])
{
self.edgesForExtendedLayout = UIRectEdgeNone;
}
您应该测试该版本iOS中的功能,而不是检查系统版本。