检测同一视图上的多个UIWebView何时完成加载?

时间:2013-08-01 18:44:17

标签: ios uiwebview uiwebviewdelegate

上下文

  • ViewController
  • 作为UIWebView的子视图的两个UIScrollView个对象位于此ViewControllers视图中
  • ViewController是两个UIWebViews
  • 的委托
  • 委托方法- (void)webViewDidFinishLoad:(UIWebView *)webView按预期调用两次UIWebViews
  • 我们在内容加载后使用UIWebViews设置这些sizeThatFits的高度(在webViewDidFinishLoad方法中

我想做什么

一旦两个WebView都加载了它们的内容,我想设置它们相对于WebViews高度的UIScrollView的高度。基本上我希望UIScrollView足够高,可以一直滚动UIWebViews中的文本。

我想到的可能的解决方案

  • webViewDidFinishLoad方法中有一个计数器,当它等于视图上的WebView数量时,调用一个设置UIScrollView高度的方法。
  • UIScrollView中调用webViewDidFinishLoad的设置高度 - 它将被多次调用,但最后一次调用将是正确的高度。

问题

当两个webView加载到更好的"时,我该怎么办?方式比上面可能的解决方案?

1 个答案:

答案 0 :(得分:0)

我认为你这太复杂了。正如你在问题的最后建议的那样,为什么不用每个webViewDidFinishLoad设置高度(contentSize.height,我相信你想要的):?您可以测试以查看哪个webview是最高的,并将高度设置为该值:

CGSize size = CGSizeMake(320, 0);
size.height = webView1.frame.size.height + webView2.frame.size.height;
scrollView.contentSize = size;

IMO在滚动视图中放置多个webview并不是一个好主意(虽然我之前也已经完成了...)你能考虑完全摆脱滚动视图并拥有一个webview(这是自我滚动)并有两个iframe元素,每个元素都显示你原来的webview1 / webview2内容?