如何使用UITableView创建包含UIWebView的可滚动视图

时间:2013-10-17 21:58:15

标签: ios uiwebview uiscrollview

我的iphone应用程序中有一个UIView,其中包含一个UIWebView和一个UITableView。

问题是,内容的高度变化很大,所以我希望屏幕的工作方式如下:

  • 显示UIWebView的所有内容(它可能大于屏幕)。
  • 用户结束滚动网页视图的内容后,他开始滚动表格视图的内容,形成一个可滚动的视图。

问题是,web视图和表视图都有自己的滚动字段,而apple的文档特别告诉我不要做我想要的事情:

  

重要提示:您不应该嵌入UIWebView或UITableView对象   UIScrollView对象。如果这样做,可能会导致意外行为   因为两个对象的触摸事件可能混淆错误   处理。

有没有办法做我想做的事,或者我应该重新考虑我的界面?

2 个答案:

答案 0 :(得分:2)

您可以在tableView的tableHeaderView中添加WebView,并将TableHeaderView的高度调整为Web视图的总高度。这样,您只有一个tableView,它在其上方显示WebView并一起滚动。

答案 1 :(得分:1)

尽管有Apple的警告,但仍可以这样做。我自己做了一个生产应用程序,它工作得很好。我没有在我面前的代码,但我大致做了以下几点:

1)获取Web视图内容的高度,并设置Web视图的框架以匹配该高度。

2)对表格视图执行相同的操作

上述两个步骤可确保内部滚动视图在您与应用程序交互时不会尝试滚动其内容。唯一可以滚动的是外部滚动视图。

3)最后,将外部滚动视图的内容大小设置为Web视图高度和表视图高度的总和。