UIWebView をテーブル ビュー セルに配置しながら、UIWebView のスクロールバーを維持するにはどうすればよいですか? テーブル ビューには複数のセルとヘッダー フレームもあり、多くの行があるため、スクロール可能にする必要があります。
UITextView を使用するとテキストは完全に正常に表示され、スクローラーも表示されますが、問題はコンテンツがリッチ テキストであるため、コンテンツを UIWebView で表示する以外に選択肢がないことです。アイデア、ハックはありますか?
UIWebView をテーブル ビュー セルに配置しながら、UIWebView のスクロールバーを維持するにはどうすればよいですか? テーブル ビューには複数のセルとヘッダー フレームもあり、多くの行があるため、スクロール可能にする必要があります。
UITextView を使用するとテキストは完全に正常に表示され、スクローラーも表示されますが、問題はコンテンツがリッチ テキストであるため、コンテンツを UIWebView で表示する以外に選択肢がないことです。アイデア、ハックはありますか?
Apple が何とかしない限り、これは機能しません。UITableView と UIWebView の両方がスクローラーをサポートしており、互いに矛盾しています。UITableView スクローラーが優先されるため、スクロール操作が実行されるたびに、アクションは UIWebView ではなく UITableView に送信されます。
何らかの理由で、UITableView で UITextView を使用すると、スクローラーは両方で機能します。
UIWebView をテーブル セルに追加する際の問題は、これらのオブジェクトが両方ともスクロール可能 (tableview と webview) であり、適切に使用しないと複雑になることです。tableview には uiwebview 以外のセルがありますか? テーブルビューをスクロール可能にする必要がありますか?テーブルビューをスクロール可能にする必要がない場合は、Web ビューでスクロールを有効にし、テーブルビューでスクロールを無効にします。それはうまくいくはずです。
しかし、テキストを表示したいだけなら、なぜ UITextView を使用しないのでしょうか (ただし、UITextView でも同じ問題に直面するでしょう)。
UIWebViewのドキュメントでこれを見つけました:
「重要: UIWebView または UITableView オブジェクトを UIScrollView オブジェクトに埋め込まないでください。埋め込んだ場合、2 つのオブジェクトのタッチ イベントが混同され、誤って処理される可能性があるため、予期しない動作が発生する可能性があります。」
UIWebViewをUIScrollViewにcanCancelTouchEvents
配置し、UISCrollViewのプロパティをに設定することで両方をスクロール可能にすることができNO
ます。フリックするだけで、UIScrollViewがスクロールします。指を短く押したままフリックを開始すると、UIWebViewがスクロールします。
UIWebView にコンテンツを配置すると、スクロールバーが自動的に追加されます。Interface builder の「Scales Page to Fit」のチェックを外して、表示時にページが再スケーリングされないようにしてください。
UIWebView は、UIView の高さを超えるコンテンツがある場合、スクロールバーを自動的に表示します。
次のクイック ハックを試して、Web ビューにスクロール インジケーターを強制的に表示できるかどうかを確認してください。
より徹底的なアプローチは、セルの内容を要約と詳細に分割することです。各セルに要約を表示しますが、詳細は表示しません。セルを選択したら、新しい画面を使用して、選択したセルの内容全体を表示します。これにより、スクロール可能なビュー内にスクロール可能なビューが表示されるというユーザビリティの問題が完全に回避されます。