2011-12-14 94 views
4

我正在使用PhoneGap來構建一個iOS應用程序,並且似乎無法使全屏/半透明狀態欄效果起作用。如何讓iOS中的PhoneGap狀態欄變成半透明狀態?

我設置了* -info.plist的Status bar styleTransparent black style (alpha of 0.5),而閃屏了哪些工作。但是當PhoneGap的UIWebView顯示時,狀態欄會變黑。

我嘗試在我的index.html中設置apple-mobile-web-app-status-bar-style元標記爲black-translucent,但這似乎沒有任何效果。

我嘗試將phonegap.plist的TopStatusBar選項設置爲blackTranslucent,但這也沒有任何影響。我錯過了什麼?

回答

1

你可以嘗試在你的Info.plist添加對您的應用程序:

Key: Status bar style 
Value: Black translucent style 

,或者如果您正在使用原始鍵值對

<key>UIStatusBarStyle</key> 
<string>UIStatusBarStyleBlackTranslucent</string> 

這個答案是從mwbrooks給出另一個改編對於類似的問題。試一試。

Phonegap - How do i make the statusbar black?

或者,也許,在你的** AppDelegate.m你(無效)viewDidLoad方法,你可以把:

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackTranslucent; 
+0

的感謝您迴應maujee效果。好的'ol * .plist解決方案似乎只適用於默認或黑色設置的渲染應用程序,遺憾的是不適合半透明。我嘗試了所有`AppDelegate.m`函數中的代碼,但似乎它被覆蓋,輕彈回黑色。 – 2012-01-18 14:12:54

4

其實狀態欄是半透明的。

- (void)webViewDidFinishLoad:(UIWebView *)theWebView 
{ 
    // only valid if StatusBarTtranslucent.plist specifies a protocol to handle 
    if(self.invokeString) 
    { 
     // this is passed before the deviceready event is fired, so you can access it in js when you receive deviceready 
     NSString* jsString = [NSString stringWithFormat:@"var invokeString = \"%@\";", self.invokeString]; 
     [theWebView stringByEvaluatingJavaScriptFromString:jsString]; 
    } 

    [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackTranslucent; 

    CGRect frame = theWebView.frame; 
    NSLog(@"The WebView: %f %f %f %f", frame.origin.x, frame.origin.y, frame.size.width, frame.size.height); 
    frame = theWebView.superview.frame; 
    NSLog(@"The WebView superview: %f %f %f %f", frame.origin.x, frame.origin.y, frame.size.width, frame.size.height); 

    frame.size.height += frame.origin.y; 
    frame.origin.y = 0; 

    [theWebView.superview setFrame:frame]; 

    return [ super webViewDidFinishLoad:theWebView ]; 
} 

這段代碼的日誌結果表明:

The WebView: 0.000000 0.000000 320.000000 460.000000 
The WebView superview: 0.000000 20.000000 320.000000 460.000000 

所以固定webview.superview框架,你可以得到UIStatusBarTranslucent

CGRect frame = theWebView.superview.frame; 

frame.size.height += frame.origin.y; 
frame.origin.y = 0; 

[theWebView.superview setFrame:frame]; 
+0

這就是它:)謝謝Esepakuto。 – 2012-01-21 03:09:12

相關問題