从 UIWebView 的文档中,它指出:
重要提示:您不应该在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆并错误处理。
更合适的方法是将您的 UIWebView 添加到 UIViewController 中,并在其下方添加一个 UIScrollView(或 UITableView)。我会意识到您将为滚动视图留下的空间量,特别是如果您正在处理 iPhone。
希望这是朝着正确方向的推动。
更新:
在研究了这个(我确信会有办法)之后,似乎我设法想出的最好方法是将你的 UIWebView 添加到 UITableView 的标题视图中。
//create webview
_webView = [[UIWebView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 280.0)];
//load request and scale content to fit
[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.stackoverflow.com/"]]];
[_webView setScalesPageToFit:YES];
//add web view to table header view
[[self tableView] setTableHeaderView:_webview];
这会在单元格显示在下面之前将 UIWebView 添加到表格视图的标题中。请注意,表格标题视图(以及页脚视图)与节标题(和页脚)不同,因此如果您使用 UITableViewStylePlain,您仍然可以使用这两个视图。
确保衰减 webview 的框架以允许下面的任何单元格可见,否则用户将无法滚动 tableview,因为任何触摸都将被 webview 拦截。
这仍然违反 UIWebView 文档(如上所述),但实际上,只要 webview 不覆盖视图的整个可滚动区域,此实现实际上就可以正常工作。
这是我制作的测试应用程序的屏幕截图:
希望有帮助:)