Wie kann ich das ändern das UIWebView Hintergrundfarbe nach Abrutschen UIWebView zu beheben, die iOS7 status bar overlay-Problem?
Schreibe ich eine Phonegap 3.0+ app.
Gibt es ein Problem mit der status bar überlappende Ansichten in iOS7 die Benutzer Ludwig Kristoffersson, sofern eine funktionierende Antwort hier
Nun, dass ich UIWebView mit einem 20px oberen Rand, wie kann ich das ändern das UIWebView Hintergrundfarbe? Ich brauche den Bereich hinter der Statusleiste, um die gleiche hintergrund Farbe wie das "people" - Symbolleiste.
Habe ich fast keine Erfahrung in Objective-C, und habe auf der Suche durch möglich, SO Fragen zu finden, eine funktionierende Lösung, aber ohne Erfolg.
UIWebView Hintergrundfarbe
UIWebView hintergrund gesetzt, um die Klare Farbe, aber es ist nicht transparent
Unten ist der code, den ich bisher ausprobiert habe:
- (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];
}
UPDATE 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];
}
Dass immer noch zu geben scheint mir ein weißer hintergrund hinter der status-bar, die eher als Grau.
Das Ergebnis ich hoffe, dass ist so:
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie die Opaque-Eigenschaft auf NEIN und überprüfen, wie diese :
seine arbeiten gut für mich.
self.webView.backgroundColor = [UIColor grayColor]; self.webView.opaque=NO;
undself.webView.backgroundColor = [UIColor greenColor]; self.webView.opaque=NO;
Mein iPhone und iPad läuft iOS7.0.2 und ich kann sehen, dass die Marge ändern, die bestätigt, dass ich zu erreichen bin, dass code-Abschnitt. Alles, was ich sonst noch fehlen könnte?So erkannte ich, dass der code schiebt die UIWebView 20px nach unten. Was bedeutet, dass der Leerraum durch die definition nicht UIWebView. Der weiße Raum ist die Hauptansicht, die ich verändert die Hintergrundfarbe, indem Sie die folgenden Schritte aus:
1. Gehen Sie zu MainViewController.xib:
2. Wählen Sie in der Hauptansicht:
3. Zeigen Sie die Attribute inspector und die Farbe ändern. Getan.
Offensichtlich ist jetzt, dass ich darüber nachdenke, aber ich hoffe, dies hilft jemand in der Zukunft.
Dies ist die Arbeit für Cordova 3 und Cordova 2.9
So, nachdem Sie Ihre app-die Hintergrundfarbe per CSS so:
Gehen Sie zu Ihrem CordovaXlib.xcode.proj und suchen Sie sich Ihren "Klassen" - Ordner
MainViewController.m
Zeile#142
Kommentieren Sie die "webViewDidStartLoad" - Methode oder-Funktion, und fügen Sie einfach
So haben Sie so etwas wie dieses:
Cordova 3.5 setzt die Hintergrundfarbe in MainViewController.m's
(void)webViewDidFinishLoad:(UIWebView*)theWebView
:Ändern oder auskommentieren der Zeile erfolgreich mir erlaubt, ändern Sie die Farbe der iOS-Bildschirm hinter dem webview.
Dank bar54 für diese Lösung.
Alternativ, setzen Sie einen 20px Abstand auf den Körper der HTML-innen Ihre UIWebView, und dann die hintergrund Farbe in der CSS gehen den ganzen Weg an die Spitze.
Beachten Sie, dass Ihre app benötigen Sie das Gerät plugin Hinzugefügt, für diese zu arbeiten.
Fügen Sie den folgenden CSS-Definitionen:
Fügen Sie eine JavaScript-basierten user-agent-Erkennung, um Ihre app-Initialisierung: