【问题标题】:Why does a local image in a UIWebView take forever to load on an iPad?为什么 UIWebView 中的本地图像需要永远加载到 iPad 上?
【发布时间】:2012-04-10 01:07:01
【问题描述】:

我在导航控制器中有一个 UIWebView。它从 xml 文件中提取 html,然后显示 html。 html 包含通过<img src="image.png" /> 获取本地图像的代码。在 iPhone 模拟器上,UIWebView 同时显示文本和图像。但是,iPad 上有很大的延迟:

几秒钟后图像加载:

我怎样才能摆脱这种讨厌的延迟?

代码:

NSString *html = [NSString stringWithFormat:@"Blah blah %@ <img src='image.png'> %@", [self.questionsAndAnswers objectAtIndex:0], [self.questionsAndAnswers objectAtIndex:1]];
[webView loadHTMLString:html baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]]];

UIWebView 通过 Storyboard 连接。

编辑:尽管有我的 cmets,但实际上任何图像都会发生这种情况。我什至尝试将其加载到没有其他 html 的基本 UIWebView 中!

【问题讨论】:

  • 你能把你加载的代码贴出来然后显示html吗?
  • 另外,你的图片有多大?
  • 我现在无法访问代码。图像相当小(最多 300x300)。我可以用更大的图像加载另一个 UITableViewCell 调用的另一个 UIWebView 并且仍然得到相同的结果
  • 不看代码很难知道,但我猜你会因为图像被缓存而延迟。解决此问题的一种方法是在后台预加载带有图像的 html。
  • 我尝试在我的应用程序的第一个屏幕上加载它(但不显示它),以为它会在这个屏幕上加载得更快,但事实并非如此。

标签: xcode cocoa-touch uiwebview


【解决方案1】:

有几件事可以尝试:

  • 预加载 html(如果您不必即时生成任何内容,则很有用)
  • 预加载图片(为了缓存它)
  • 确保缓存已关闭
  • 确保没有进行大量图像处理(调整大小等)
  • 确保您的图片不要太大(应该检查超过 100k 的图片
  • 如果所有其他方法都失败了,请尝试通过缓慢移除部分或逐个重建视图来创建一个最小示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    相关资源
    最近更新 更多