UIWebView のドキュメントから、次のように述べています。
重要: UIWebView または UITableView オブジェクトを UIScrollView オブジェクトに埋め込まないでください。これを行うと、2 つのオブジェクトのタッチ イベントが混同され、誤って処理される可能性があるため、予期しない動作が発生する可能性があります。
より適切なアプローチは、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 を使用している場合でもこれら 2 つを使用できることに注意してください。
下にあるセルが表示されるように、Web ビューのフレームを必ず減衰させてください。そうしないと、タッチが Web ビューによって傍受されるため、ユーザーはテーブルビューをスクロールできなくなります。
これは依然として UIWebView のドキュメント (上記) に反しますが、実際には、Web ビューがビューのスクロール可能な領域全体をカバーしていない限り、この実装は実際には問題なく機能します。
私が作成したテストアプリのスクリーンショットは次のとおりです。
それが役立つことを願っています:)