2

Phonegapを2.3.0から2.5.0に更新した後、iOS / iPhoneアプリのスプラッシュスクリーンは、アプリの起動中に奇妙な20px下にシフトします。最初はステータスバーの後ろに配置されますが、すぐに20px下に下がります。これは、Phonegapのデフォルトテンプレートでも発生します。Phonegapの以前のバージョンでは、この問題は発生しませんでした。これを修正するにはどうすればよいですか?

4

4 に答える 4

9

やりたいステータスバーを含めると、20pxシフトで同じ問題が発生しました。この問題を解決するために、ファイルCDVSplashScreen.mを編集し、次の行を変更しました。

_imageView.frame = CGRectMake(0、0、_imageView.image.size.width、_imageView.image.size.height);

に:

_imageView.frame = CGRectMake(0、-20、_imageView.image.size.width、_imageView.image.size.height);

私はiPhone4と5、および通常のiPhone用のシミュレーターでテストしましたが、うまくいったようです。

于 2013-03-19T15:58:28.587 に答える
2

プロジェクトを2.6.0バージョンに更新することもできます。この問題はcordova2.5で認識されています。私は同じ問題を抱えていました、そして私はそれを修正するためにそれを更新するだけです

于 2013-04-26T16:00:24.960 に答える
1

XCodeターゲットには、iPhoneの展開情報のセクションがあります。そのパネルのステータスバーセクションには、起動時にステータスバーを非表示にするための[表示]チェックボックスがあります。これにより、iOSのリリースとCordovaの準備の間に見られる20pxのシフトを防ぐことができます。

于 2013-03-14T16:20:26.913 に答える
0

1)ステータスバーを非表示にする

XCode 4.6では、プロジェクトを選択し、[概要]タブを選択して、[アプリケーションの起動時に非表示にする]チェックボックスをオンにします。

2)アプリの読み込みが完了したら、ステータスバーを再度表示します。あなたは呼び出すことによってそれを行うことができます:

[[UIApplication sharedApplication] setStatusBarHidden:NO
                                        withAnimation:UIStatusBarAnimationFade];

3)Webビューがステータスバーの後ろに部分的に隠れている場合は、Webビューフレームのサイズを変更する必要がある場合もあります。

CGRect r = webView.frame;    
r.size.height -= 20;
r.origin.y = 20;    
webView.frame = r;

このための単純なPhonegapプラグインを作成しました。これは、javascriptでdevicereadyイベントが発生した直後に呼び出します(super.webviewのプラグインからWebビューにアクセスできます

于 2013-04-26T13:06:10.557 に答える