0

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

是否可以在 timw 加载 UIActivityIndi​​catorView,请帮帮我

提前致谢

4

2 回答 2

0

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

解决方法如下:

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

于 2013-10-18T11:56:38.813 回答
0

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

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

我玩了一下你原来的解决方案,这似乎工作得很好。我认为您几乎拥有它,但是您只是抵消了您使用过多的矩形,而忘记了您可以将矩形直接滚动回原始矩形。

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

 - (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];
}
于 2013-10-18T10:21:10.150 回答