【问题标题】:UIWebView scrolls slowly in iOS9 after load 50+ times加载 50 次以上后,UIWebView 在 iOS9 中滚动缓慢
【发布时间】:2016-07-04 13:12:29
【问题描述】:

我有一个 UIWebView 应用程序,其中包含本地 HTML 文件&css&js。 在 iOS8 或更早版本中,当我在我的应用程序包中加载 HTML 字符串 50 次以上时,它会正常滚动且不会滞后。 但是在 iOS9 中,当我加载 HTML 字符串 50 次以上时,我的 UIWebView 的滚动视图变得越来越慢。

我也新建了一个项目,只是为了重新加载一个本地的HTML字符串。加载多次(50~100+)后,滚动视图也变慢了。一个URL请求也会导致慢。

这是我的New Proj,你可以在iOS9的设备或模拟器上运行它。它可以重现。但是当你在iOS8中运行它时,一切正常。

    - (void)viewDidLoad {
    [super viewDidLoad];
    UIWebView *wv = [[UIWebView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:wv];
    self.webView = wv;
    self.webView.delegate = self;
    self.request= [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]];
    [self.webView loadRequest:self.request];
    self.refreshCount = 0;
}

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    [self.webView loadRequest:_request];
    NSLog(@"refreshCount = %lu",(unsigned long)_refreshCount++);
}

有什么办法吗?

【问题讨论】:

  • 嘿@cube 你找到解决这个问题的方法了吗?我遇到同样的行为。为了解决这个问题,我尝试清除缓存,将缓存设置得非常小。有趣的是,它只有在存在触摸事件时才会变慢,而不是在加载或切换页面时。据我所知,触摸处理本身正在阻塞主线程。

标签: html ios objective-c uiwebview


【解决方案1】:

使用 GCD 或 NSOperationQueue 以快速加载它们。

【讨论】:

    【解决方案2】:

    删除下面提到的代码,然后尝试...它可能对你有用。

    UIWebView *wv = [[UIWebView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:wv];
    self.webView = wv;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 1970-01-01
      • 2023-03-16
      • 2012-02-07
      • 2013-08-18
      • 1970-01-01
      • 2016-06-05
      相关资源
      最近更新 更多