Wie kann ich die Hintergrundfarbe von UIWebView ändern, nachdem ich UIWebView nach unten geschoben habe, um das iOS7-Problem mit der Statusleiste zu beheben?

7

Ich schreibe eine Phonegap 3.0+ App.

Es gibt ein Problem mit der Statusleiste überlappende Ansichten in iOS7, die Ludwig Kristoffersson hier eine funktionierende Antwort lieferte

Nun, da ich UIWebView mit einem oberen 20px Rand habe, wie kann ich die UIWebView Hintergrundfarbe ändern? Ich brauche den Bereich hinter der Statusleiste mit der gleichen Hintergrundfarbe wie die Symbolleiste "Personen".

Ich habe fast keine Erfahrung in Objective C und habe mögliche SO-Fragen durchgelesen, um eine funktionierende Lösung zu finden, aber ohne Erfolg.

Hintergrundfarbe von UIWebView
Der UIWebView-Hintergrund ist auf Clear Color eingestellt, aber nicht transparent


Unten ist der Code, den ich bisher versucht habe:

%Vor%


UPDATE 1

%Vor%

Das scheint mir immer noch einen weißen Hintergrund hinter der Statusleiste zu geben, anstatt grau.

Das Ergebnis, auf das ich hoffe, ist so:

    
Paul 17.10.2013, 02:02
quelle

6 Antworten

10

Also habe ich festgestellt, dass der Code das UIWebView um 20px runterdrückt. Das bedeutet, dass der weiße Bereich per Definition nicht UIWebView sein kann. Der weiße Bereich ist die Hauptansicht, in der ich die Hintergrundfarbe geändert habe, indem ich folgendes gemacht habe:

1. Gehen Sie zu MainViewController.xib:



2. Wählen Sie die Hauptansicht:


3. Zeigen Sie den Attributinspektor an und ändern Sie die Farbe. Fertig.

Offensichtlich jetzt, dass ich darüber nachdenke, aber hoffentlich hilft das jemandem in der Zukunft.

    
Paul 17.10.2013, 06:40
quelle
14

Ändern Sie die Eigenschaft "Opaque" in "NO" und überprüfen Sie Folgendes:

%Vor%

es funktioniert gut für mich.

    
Ganapathy 17.10.2013 04:06
quelle
1

Dies funktioniert für Cordova 3 und Cordova 2.9

Nachdem Sie die Hintergrundfarbe Ihrer App wie folgt über CSS eingestellt haben:

%Vor%

Gehen Sie zu CordovaXlib.xcode.proj und suchen Sie nach dem Ordner "Classes" HauptansichtController.m Zeile # 142

Entfernen Sie die Kommentarzeichen für die Methode oder Funktion "webViewDidStartLoad" und fügen Sie einfach

hinzu %Vor%

Sie werden also so etwas haben:

%Vor%     
d1jhoni1b 08.05.2014 03:20
quelle
1

Cordova 3.5 setzt die Hintergrundfarbe in MainViewController.m 's (void)webViewDidFinishLoad:(UIWebView*)theWebView :

%Vor%

Das Ändern oder Auskommentieren dieser Zeile erlaubte mir, die Farbe des iOS-Bildschirms hinter der Webansicht zu ändern.

Danke bar54 für die Beschreibung dieser Lösung.

    
Dave Liepmann 18.09.2014 20:12
quelle
0

Alternativ können Sie einen 20-Pixel-Rand auf den HTML-Text in Ihrem UIWebView setzen, und dann wird die Hintergrundfarbe in Ihrem CSS ganz nach oben gehen.

%Vor%

Beachten Sie, dass Ihre App das hinzugefügte Geräteplugin benötigt, damit dies funktioniert.

    
Sam Thompson 17.10.2013 08:29
quelle
0

Fügen Sie die folgenden CSS-Definitionen hinzu:

%Vor%

Fügen Sie Ihrer App-Initialisierung eine JavaScript-basierte Benutzeragentenerkennung hinzu:

%Vor%     
Muhammed 31.08.2014 01:21
quelle