Подтвердить что ты не робот

Как предотвратить первоначальную белую вспышку при показе UIWebView?

Я использую UIWebView для отображения экрана "О программе", отображая связанный HTML файл. Моя иерархия представлений приложений: UITabBarController/UIViewController/UIWebView.

Проблема заключается в том, что страница HTML имеет темный фон, и в первый раз, когда вкладка нажата, белый фон отображается ненадолго до отображения веб-представления. Я попытался установить цвет фона UIWebView, но это не решит проблему. Проблема возникает при загрузке содержимого в viewDidLoad или viewWillAppear.

4b9b3361

Ответ 1

webView.opaque = NO;
webView.backgroundColor = [UIColor clearColor];

Ответ 2

//load index.html

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html" inDirectory:@"www"]];
self.webview.delegate = self;

self.webview.alpha = 0; // flicker fix 

[self.webview loadRequest:[NSURLRequest requestWithURL:url]];

Добавьте это в делегат после загрузки

// flicker fix

- (void)webViewDidFinishLoad:(UIWebView *)webView  
{
    [UIView beginAnimations:nil context:nil];

    [UIView setAnimationDuration:0.30];

    self.webview.alpha = 1;

    [UIView commitAnimations];

}

Ответ 3

Я также столкнулся с той же проблемой, решение, которое я нашел, выглядит следующим образом.

-(void)viewDidLoad {
  [super viewDidLoad];

  [_webView setOpaque:NO];
  _webView.backgroundColor = [UIColor clearColor];
  self.webView.hidden = YES;
}

-(void)webViewDidFinishLoad:(UIWebView *)webView {

 //...........................

 self.webView.hidden = NO;
}