Phonegap 2.5.0 splashscreen在显示期间向下移动

时间:2013-03-11 19:10:26

标签: ios cordova

将Phonegap从2.3.0更新到2.5.0后,我的iOS / iPhone应用程序中的启动画面会在应用程序启动期间向下移动一个奇怪的20px。首先,它将自己定位在状态栏后面,但很快就会低于20px。这也发生在Phonegap默认模板中。在Phonegap的早期版本中,我没有遇到此问题。我该如何解决这个问题?

4 个答案:

答案 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)。