この問題は、1 つか 3 つのスクリーンショットで最もよく説明されています。
どういうわけか、コンテンツを完全にレンダリングしていない UIWebView があります...それともそうですか? 見えなくても、確かに webView のテキストをタップして選択できます。ここで何が起こっているのですか?
明確にするために、これは webView にコンテンツを表示しているときにのみ発生します。それはランダムで、簡単には再現できません。
私はUIPageViewControllerを持っており、各「ページ」viewControllerにはUIWebViewがあります。コンテンツを入力するために HTML を挿入し、webViewDidFinishLoading: が返されたら、マングリングを行って入力を終了する JS 関数を実行します。(クロスプラットフォーム機能のためにJSで行われたマングリング。)
セットアップ方法では、HTML のリンクをタップすると、PageViewController に新しいページが作成され、アニメーション化されて、新しいコンテンツがこの新しいページに読み込まれます。「辞書アプリ」と考えてください。
しかし、私が言うように、ランダムにこの現象が発生します。コンテンツは確実にそこにあり、触れることができますが、表示されません。
以下は、さらに明らかなスクリーンショットです。
フラット化された UIWebView は、iPad デバイスのスクリーンショットとまったく同じように表示されることがわかります。しかし、ツリーに入って UIWebBrowserView (UIWebView にある UIScrollView のコンテンツ ビュー) を展開すると、HTML ページ全体が表示されます。
この問題を特定して解決できるほど、図面ビューの内部動作に精通していないので、助けていただければ幸いです。
PS潜在的に関連することの1つsetViewControllers:animated:
は、新しいUIWebViewを作成してロードプロセスを開始するUIPageViewControllercompletion:
を呼び出し、その呼び出しのブロックでアニメーションなしで再度呼び出して、UIPageViewControllerをだまして「失われる」ようにすることです。次にユーザーがパンしようとしたときにデータソースを再クエリするように強制します。詳細については、この投稿を参照してください。とにかく、関係ないかもしれませんが、言及しなければなりませんでした。