11 Stimmen

Wie man die Farbe eines UIWebViews steuert (bevor der Inhalt geladen wird)?

Ich versuche, eine schwarze UIWebView zu haben, bevor ihre Inhalte geladen werden. In IB habe ich sowohl versucht, die Hintergrundfarbe der UIWebView schwarz zu machen, als auch sie mit einem transparenten Hintergrund zu versehen und den Hintergrund des übergeordneten Views schwarz zu machen. Beides funktioniert nicht. Wenn meine UIWebView geladen wird, ist der Hintergrund davon weiß. Wie kann ich das beheben?

*Ich hoffe, dass es nicht darauf hinausläuft, dass ich zuerst einen HTML-String laden muss (bevor ich meinen tatsächlichen Webinhalt lade), um den Hintergrund über CSS auf schwarz zu setzen.

0voto

russes Punkte 1082

Für iOS 7 hier ein weiteres Beispiel. "Self" ist ein UIViewController, der auf den Navigationscontroller-Stapel verschoben wurde:

- (void) loadView
{
    UIWebView *webView = [[UIWebView alloc] initWithFrame: [[UIScreen mainScreen] bounds]];      // iOS 7 - mach das Webview den gesamten Bildschirm

// -- http://stackoverflow.com/questions/2491654/how-to-control-the-color-of-a-uiwebview-before-contents-load --

    webView.backgroundColor = [[Settings sharedInstance] backgroundColor];
    webView.opaque          = NO;                                               // das auf NO setzen behebt das Problem mit der Hintergrundfarbe
    webView.delegate        = self;

    self.view = webView;

    NSBundle      *thisBundle = [NSBundle mainBundle];
    NSString            *path = [thisBundle pathForResource: @"Instructions" ofType: @"html"];
       NSURL *instructionsURL = [[NSURL alloc] initFileURLWithPath: path];

    [webView loadRequest: [NSURLRequest requestWithURL: instructionsURL]];
}

0voto

Beppex Punkte 93

Fügen Sie ein UIView (ich habe blackView verwendet) mit Ihrer benutzerdefinierten Hintergrundfarbe (ich habe die schwarze Farbe verwendet) über dem WebView hinzu und zeigen Sie es dann beim Laden des WebView an und verstecken Sie es, wenn es geladen ist. Der WebView muss einen transparenten Hintergrund haben und die Root-Ansicht muss die gleiche Hintergrundfarbe wie Ihre benutzerdefinierte Farbe haben (in meinem Fall schwarz)

  • in viewDidLoad() view.backgroundColor = UIColor.blackColor() webView.opaque = false

  • in webViewDidStartLoad(webView: UIWebView) blackView.alpha = 1

  • in webViewDidFinishLoad(webView: UIWebView) blackView.alpha = 0

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X