2

この問題は、1 つか 3 つのスクリーンショットで最もよく説明されています。

どういうわけか、コンテンツを完全にレンダリングしていない UIWebView があります...それともそうですか? 見えなくても、確かに webView のテキストをタップして選択できます。ここで何が起こっているのですか?

非表示のテキストを含む WebView

明確にするために、これは webView にコンテンツを表示しているときにのみ発生します。それはランダムで、簡単には再現できません。

私はUIPageViewControllerを持っており、各「ページ」viewControllerにはUIWebViewがあります。コンテンツを入力するために HTML を挿入し、webViewDidFinishLoading: が返されたら、マングリングを行って入力を終了する JS 関数を実行します。(クロスプラットフォーム機能のためにJSで行われたマングリング。)

セットアップ方法では、HTML のリンクをタップすると、PageViewController に新しいページが作成され、アニメーション化されて、新しいコンテンツがこの新しいページに読み込まれます。「辞書アプリ」と考えてください。

しかし、私が言うように、ランダムにこの現象が発生します。コンテンツは確実にそこにあり、触れることができますが、表示されません。

以下は、さらに明らかなスクリーンショットです。

ファーストルックを公開

爆発を明らかにする

フラット化された UIWebView は、iPad デバイスのスクリーンショットとまったく同じように表示されることがわかります。しかし、ツリーに入って UIWebBrowserView (UIWebView にある UIScrollView のコンテンツ ビュー) を展開すると、HTML ページ全体が表示されます。

この問題を特定して解決できるほど、図面ビューの内部動作に精通していないので、助けていただければ幸いです。

PS潜在的に関連することの1つsetViewControllers:animated:は、新しいUIWebViewを作成してロードプロセスを開始するUIPageViewControllercompletion:を呼び出し、その呼び出しのブロックでアニメーションなしで再度呼び出して、UIPageViewControllerをだまして「失われる」ようにすることです。次にユーザーがパンしようとしたときにデータソースを再クエリするように強制します。詳細については、この投稿を参照してください。とにかく、関係ないかもしれませんが、言及しなければなりませんでした。

4

1 に答える 1

1

次の 2 つが必要です。

  • 正しいレイアウトにする (iOS 6.0 以降の自動レイアウト)
  • UIWebView を scrollview に配置し、webview デリゲートで scrollview サイズを設定する必要があります (HTML レンダリングが終了した後)。
于 2013-08-03T08:33:17.140 に答える