在滚动时加载文本的UIWebview延迟?

时间:2013-10-18 10:10:31

标签: iphone ios uiwebview scroll blink

我已经添加了html文件来加载UIWebview内部并且工作正常。 然后(UIWebview)滚动更快的延迟加载文本,它在滚动更快时出现白色背景。我想在滚动更快的同时删除白色背景。

是否可以按时加载UIActivityIndi​​catorView,请跟我一起

先谢谢

2 个答案:

答案 0 :(得分:0)

因为UIScrollview中的事件跟踪阻止了主线程。

您可以尝试在另一个Web操作之前强制滚动滚动结束滚动(或减速)。

我使用了你的原始解决方案,这似乎工作得很好。我觉得你几乎已经拥有了它,但是你只是偏移了你过多使用的矩形,忘记了你可以直接将矩形滚动回原来的矩形。

任何滚动操作的通用解决方案是:

 - (void)killScroll 
    {
        CGPoint offset = scrollView.contentOffset;
        offset.x -= 1.0;
        offset.y -= 1.0;
        [scrollView setContentOffset:offset animated:NO];
        offset.x += 1.0;
        offset.y += 1.0;
        [scrollView setContentOffset:offset animated:NO];

}

[编辑]从iOS 4.3开始(可能更早),这似乎也可以正常工作

- (void)killScroll 
{
    CGPoint offset = scrollView.contentOffset;
    [scrollView setContentOffset:offset animated:NO];
}

答案 1 :(得分:0)

我想我发现了这个问题。它看起来像iPhone上的NSURLRequestReturnCacheDataElseLoad和NSURLRequestReturnCacheDataDontLoad。当从缓存返回NSCachedURLResponse并且它包含指示内容已过期的HTTP标头(例如Expires,Cache-Control等)时,将忽略缓存的响应并请求原始源。

解决方案如下:

实现您自己的NSHTTPURLResponse子类,它允许您修改allHeaderFields字典。 实现您自己的NSURLCache,覆盖cachedResponseForRequest:并返回一个新的NSCachedURLResponse,其中包含NSHTTPURLResponse子类的实例,并删除相关的“到期”HTTP标头。