Wyświetlam niewielką ilość zawartości lokalnej w interfejsie UIWebView, z grubsza 3 akapitami tekstu i jednym obrazem 100x100px. Po przesłaniu UIWebView do kontrolera nawigacji, wyświetlenie zawartości zajmuje około pół sekundy. Dzieje się to na urządzeniu, a nie na symulatorze. Oczywiście UIWebView musi wykonać trochę pracy przed wyświetleniem zawartości, ale czy jest jakiś sposób, aby to zrobić, zanim pojawi się widok pushed? Nie miałem szczęścia, robiąc to sam.Opóźnienie UIWebView podczas wczytywania treści lokalnych
Oto gdzie tworzę i przesuwając kontroler widoku, który zawiera UIWebView:
ArticleViewController* viewController = [[ArticleViewController alloc] init];
viewController.article = article;
[viewController view]; //touch the view so it gets loaded
[viewController loadWebView]; //load the web view content
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
A oto metoda loadWebView
:
-(void)loadWebView {
NSString *path = [[NSBundle mainBundle] bundlePath];
NSURL *baseURL = [NSURL fileURLWithPath:path];
NSString* content = article.content;
NSString *html = [NSString stringWithFormat:@"\
<html><body style='background-color: transparent'><style type=""text/css"">body {font-family: helvetica; color: black; font-size: 10pt; margin: 10px 10px 10px 10px}</style>\
%@<div style='text-align:center'><a href='13443574_9709e4cf37.jpg?photographer=test' style='-webkit-tap-highlight-color:rgba(0,0,0,0);'><img src='13443574_9709e4cf37.jpg' height='160' width='230'></a></div></body></html>", content];
[self.webView loadHTMLString:html baseURL:baseURL];
}
Wcześniej miałem [viewController loadWebView]
w metodzie viewDidLoad , ale wynik wydaje się być taki sam. Pusty ekran po naciśnięciu kontrolki viewController, a następnie ładowaniu treści pół sekundy później.
Wszelkie pomysły?
DZIĘKUJEMY !!!!! webkit rzeczywiście musi zostać rozgrzany –
To powinna być zaakceptowana odpowiedź –