UIWebView loadRequest 重用给出闪烁效果

Posted

技术标签:

【中文标题】UIWebView loadRequest 重用给出闪烁效果【英文标题】:UIWebView loadRequest reuse gives flickering effect 【发布时间】:2012-06-27 08:25:11 【问题描述】:

我有多个 pdf 文件。根据用户输入,我正在使用 UIWebView 加载 pdf。在第一次 loadRequest 时,它会正确加载 pdf。从第二次调用 LoadRequest 开始,它在加载新的 pdf 时显示出一些闪烁效果。这意味着开始模糊显示内容并在几秒钟内慢慢正确显示内容。

下面的代码sn-p:

- (void) loadDocument: (NSString *) documentName

    NSString * path = [[NSBundle mainBundle] pathForResource: documentName ofType: self.docType];
    NSURL * url = [NSURL fileURLWithPath: path];
    request = [NSURLRequest requestWithURL: url];
    [PdfWebView loadRequest: request];    



- (void) loadNewDoc:(int)segIndex

    switch (mPageIndex) 
    
                case 0:
                    [self loadDocument:@"PDF_0"];
                    break;

                case 1:
                    [self loadDocument:@"PDF_1"];
                    break;


                case 2:
                    [self loadDocument:@"PDF_2"];
                    break;


                default:
                    break;
        

【问题讨论】:

【参考方案1】:

您可以在开始新请求之前清除 web 视图,方法是使用

[yourwebview loadhtmlString:@"<html><head></head><body></body></html>" baseURL:nil];

甚至

[yourwebview stringByEvaluatingjavascriptFromString:@"document.open();document.close();"];

这可能会消除闪烁效果

【讨论】:

我都试过了,但没有成功。我仍然看到相同的闪烁效果。【参考方案2】:

对我来说,这有帮助(它的 robovm java 代码):

UIView.transition(_wv, 0.5, UIViewAnimationOptions.TransitionCrossDissolve, new Runnable() 
@Override
public void run() 
    _wv.loadData(new NSData(pdf), "application/pdf", "utf-8", null);

, null);

【讨论】:

以上是关于UIWebView loadRequest 重用给出闪烁效果的主要内容,如果未能解决你的问题,请参考以下文章

如果从 tableView:didSelectRowAtIndexPath 调用 UIWebView 不调用 loadRequest:

iOS UIWebView loadRequest 耗时太长

UIWebview loadRequest不仅适用于iPhone X.

UIWebview loadRequest 仅在 iPhone X 中不起作用

General-Block 56, 1024, 8, 244, 24 Memory Leaks using UIWebView loadRequest

如何在Swift中的UIWebView中加载URL?