2013-03-11 44 views
2

將Phonegap從2.3.0更新到2.5.0之後,iOS/iPhone應用程序中的啓動畫面會在應用程序啓動過程中向下移動一個奇怪的20px。首先它位於狀態欄的後面,但很快會降到低於20px。這也發生在Phonegap默認模板中。在之前的Phonegap版本中,我沒有遇到這個問題。我該如何解決?Phonegap 2.5.0 splashscreen在顯示過程中向下移動

回答

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

太棒了,這個工程就像我想要的一樣! – yrjom 2013-03-19 18:32:48

+1

儘管這種方法有效,但缺點是每次更新Cordova時都必須記住對CDVSplashScreen.m進行相同的編輯。 您可能會在添加呼叫 '[[UIApplication sharedApplication] setStatusBarHidden:NO];' 到您的主要UIViewController類。 – 2013-03-19 18:58:38

+0

我還發現這些信息與您的建議相關。我的學習繼續:) http://cookieflow.wordpress.com/2013/03/16/hiding-and-showing-the-ios-status-bar-in-phonegap-2-5-0/ – yrjom 2013-03-20 12:53:15

1

在您的XCode目標中,有一部分用於iPhone部署信息。該面板的狀態欄部分有一個可見性複選框,用於在啓動過程中隱藏狀態欄。這應該可以防止你在iOS啓動和科爾多瓦準備就緒之間看到20px的變化。

+0

謝謝,我試過了,並沒有再出現轉變,但現在狀態欄不再出現了?我需要它在發佈後可見。如何恢復? – yrjom 2013-03-14 17:07:29

0

1)隱藏狀態欄

在Xcode 4.6,選擇你的項目,然後摘要選項卡,然後選中「隱藏在應用程序啓動」複選框。

2)當應用程序加載完成後再次顯示狀態欄。你可以通過調用:

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

3)您可能還需要調整您的WebView幀,如果web視圖部分隱藏狀態欄背後:

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

我創建了一個簡單的PhoneGap插件我在設備準備就緒事件之後調用的這個函數是在javascript中觸發的(您可以從插件super.webview訪問您的webview。

2

您也可以將您的項目更新到2.6.0版本。這個問題對於cordova 2.5是已知的。我有同樣的問題,我只是更新它來糾正它

+0

是的,我做了那已經是2.6.0版本了(在我最初的問題之後)。這當然是最好的解決方案。感謝您在這裏提醒它! – yrjom 2013-04-27 15:21:27