预加载UIWebView,避免白屏闪烁

Asc*_*ant 10 iphone uiwebview

我正在开发一个具有表格导航的应用程序,最终向下钻取到UIWebView显示各种信息.然而,从光滑UITableView到缓慢的不稳定的转变UIWebView对用户来说是不和谐的,所以我想改善那种体验,但我可以.

具体来说,两个tableViewsUIWebView页面的背景都有黑色背景,但是当我打开UIWebView它时,它会闪烁空白白色大约一秒钟(本地和远程HTML文件就是这种情况.)我如何(理想情况下)预加载此过程,或者(至少)让"闪光"全黑而不是全白?我尝试将视图/ webView的背景设置为黑色,但这似乎没有帮助.

在我的应用程序中,当用户选择一个单元格时,应用程序只会加载UIWebView子类并将其推送到导航堆栈.该UIWebView子类有一个用于启动和停止动画上活动的指标WebViewDidStartLoad和WebViewDidFinishLoad,工作正常,但它不会做任何事情来帮助"白色闪光".

Ind*_*ore 10

我测试了它......我发送了我用过的两种方法......

 - (void)viewDidLoad {
        [super viewDidLoad]; //objWebView is the outlet of UIWebView
        [objWebView loadHTMLString:@"<html><body style=\"background-color:black;\"></body></html>" baseURL:nil];

        //the more the delay the errors will be less so within 0.1-0.3 would be fine
        [self performSelector:@selector(loadURL:) withObject:nil afterDelay:0.1]; 
    }

-(void)loadURL:(id)sender{
    [objWebView stopLoading]; //added this line to stop the previous request
    NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
    NSURLRequest *req = [NSURLRequest requestWithURL:url];
    [objWebView loadRequest:req];
}
Run Code Online (Sandbox Code Playgroud)

在这里,我在0.1秒后执行请求,否则它将在您的情况下看起来像白色.或者你可以根据时间给你延迟时间..干杯:)


Joh*_*uss 9

试试你的

    -(void)viewDidLoad{
       myWebView.hidden = YES;
Run Code Online (Sandbox Code Playgroud)

然后进去

    -(void)loadURL:(id)sender{  
        myWebView.hidden = NO;
Run Code Online (Sandbox Code Playgroud)