0

语境

  • 单身的ViewController
  • 作为 a 的子视图的两个UIWebView对象UIScrollView在此ViewControllers视图中
  • ViewController 是两个 UIWebViews 的代表
  • 委托方法- (void)webViewDidFinishLoad:(UIWebView *)webView被调用两次UIWebViews
  • 我正在UIWebViews使用sizeThatFits它们的内容加载后设置它们的高度(在webViewDidFinishLoad方法中

我想做的事

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

我想到的可能的解决方案

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

问题

当两个 webView 都以比上述可能的解决方案“更好”的方式加载时,我该如何解决?

4

1 回答 1

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 内容?

于 2013-08-01T19:20:23.763 回答