【问题标题】:UIWebview delay to load text while scrolling?滚动时加载文本的 UIWebview 延迟?
【发布时间】:2013-10-27 03:25:17
【问题描述】:

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

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

提前致谢

【问题讨论】:

  • 是否需要更改背景颜色?
  • 感谢您的回复,已经设置了bckgrd color clear color
  • 在加载活动指示器时是否可以这样做

标签: iphone ios uiwebview scroll blink


【解决方案1】:

因为 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];
}

【讨论】:

    【解决方案2】:

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

    解决方法如下:

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

    【讨论】:

      猜你喜欢
      • 2011-04-20
      • 2023-02-19
      • 1970-01-01
      • 2011-01-11
      • 2012-08-08
      • 1970-01-01
      • 2023-03-24
      • 2019-11-12
      • 2020-04-08
      相关资源
      最近更新 更多