将Phonegap从2.3.0更新到2.5.0后,我的iOS / iPhone应用程序中的启动画面会在应用程序启动期间向下移动一个奇怪的20px。首先,它将自己定位在状态栏后面,但很快就会低于20px。这也发生在Phonegap默认模板中。在Phonegap的早期版本中,我没有遇到此问题。我该如何解决这个问题?
答案 0 :(得分:9)
如果我包含了我想要的状态栏,我遇到了20px转换的同样问题。为解决此问题,我编辑了CDVSplashScreen.m文件,并更改了以下行:
_imageView.frame = CGRectMake(0,0,_imageView.image.size.width,_imageView.image.size.height);
TO:
_imageView.frame = CGRectMake(0, -20 ,_ imageView.image.size.width,_imageView.image.size.height);
我在我的iPhone 4和5以及普通iPhone的模拟器上进行了测试,似乎已经完成了这个技巧。
答案 1 :(得分:2)
您还可以将项目更新到2.6.0版本。这个问题是关于cordova 2.5的。我有同样的问题,我只是更新它来纠正它
答案 2 :(得分:1)
在您的XCode目标中,有一个iPhone部署信息部分。该面板的状态栏部分有一个“可见性”复选框,用于在启动期间隐藏状态栏。这应该可以防止你在iOS发布和Cordova准备就绪之间看到20px的转变。
答案 3 :(得分:0)
1)隐藏状态栏
在XCode 4.6中,选择项目,然后选择摘要选项卡,然后选中“在应用程序启动期间隐藏”复选框。
当应用程序加载完成后,再次2)再次显示状态栏。您可以通过致电:
来做到这一点[[UIApplication sharedApplication] setStatusBarHidden:NO
withAnimation:UIStatusBarAnimationFade];
3)如果webview部分隐藏在状态栏后面,您可能还需要调整webview框架的大小:
CGRect r = webView.frame;
r.size.height -= 20;
r.origin.y = 20;
webView.frame = r;
我为此创建了一个简单的Phonegap插件,我在javascript中触发deviceready事件后立即调用(您可以从 super.webview 的插件访问您的webview)。