7

Phonegap 3.0+ アプリを作成しています。

ユーザーLudwig Kristoffersson がここで有効な回答を提供したiOS7 のビューに重なるステータス バーに問題があります。

UIWebView の上余白が 20px になったので、UIWebView の背景色を変更するにはどうすればよいですか? ステータスバーの後ろの領域を「人」ツールバーと同じ背景色にする必要があります。

ここに画像の説明を入力

私はObjective Cの経験がほとんどなく、実用的な解決策を見つけるために可能なSOの質問を調べてきましたが、成功していません.

UIWebView の背景色
UIWebView の背景は Clear Color に設定されていますが、透明ではありません


以下は、これまでに試したコードです。

- (void)viewWillAppear:(BOOL)animated {
    //Lower screen 20px on ios 7
    if([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
        CGRect viewBounds = [self.webView bounds];
        viewBounds.origin.y = 20;
        viewBounds.size.height = viewBounds.size.height - 20;
        self.webView.frame = viewBounds;
        [self.webView setOpaque:YES];

        //neither of these seem to work when uncommented:
  //    [self.webView setBackgroundColor:[UIColor grayColor]];
  //    self.webView.backgroundColor=[UIColor grayColor];
        }
    [super viewWillAppear:animated];
    }



更新 1

- (void)viewWillAppear:(BOOL)animated
{
//Lower screen 20px on ios 7
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
    CGRect viewBounds = [self.webView bounds];
    viewBounds.origin.y = 20;
    viewBounds.size.height = viewBounds.size.height - 20;
    self.webView.frame = viewBounds;

    self.webView.backgroundColor = [UIColor grayColor];
    self.webView.opaque=NO;
}
[super viewWillAppear:animated];
}

それでも、ステータスバーの背景がグレーではなく白い背景になっているようです。

私が望んでいる結果は次のようなものです: ここに画像の説明を入力

4

6 に答える 6

10

そのため、コードが UIWebView を 20px 押し下げていることに気付きました。つまり、定義上、空白は UIWebView にすることはできません。空白は、次のようにして背景色を変更したメイン ビューです。

1. MainViewController.xib に移動します。



2. メイン ビューを選択します。


3. 属性インスペクターを表示し、色を変更します。終わり。

考えてみれば明らかですが、これが将来誰かに役立つことを願っています。

于 2013-10-17T06:40:52.230 に答える
1

これは、Cordova 3 および Cordova 2.9 で機能します。

したがって、次のように CSS を介してアプリの背景色を設定した後:

 body{
   background-color: #000;
 }

CordovaXlib.xcode.proj に移動し、"Classes" フォルダー MainViewController.m line#142 を探します。

「webViewDidStartLoad」メソッドまたは関数のコメントを外して、追加するだけです

  self.webView.opaque=NO;

したがって、次のようなものになります。

 - (void) webViewDidStartLoad:(UIWebView*)theWebView
 {
    self.webView.opaque=NO;
    return [super webViewDidStartLoad:theWebView];
 }
于 2014-05-08T03:20:37.883 に答える
1

Cordova 3.5 はMainViewController.mの背景色を設定し(void)webViewDidFinishLoad:(UIWebView*)theWebViewます。

theWebView.backgroundColor = [UIColor blackColor];

その行を変更またはコメントアウトすると、webview の背後にある iOS 画面の色を変更できました。

このソリューションを説明してくれたbar54に感謝します。

于 2014-09-18T20:12:12.913 に答える