0

HTML ドキュメントをUIWebViewwithにロードしていますloadRequest:requestURL。HTML コンテンツがビューのフレームに完全に収まりません。webViewDidFinishLoad:ページがロードされたとき (が呼び出されたとき) にビューscrollView.contentOffsetが と異なることに驚いたのは(0,0). 垂直方向の中心がビューの垂直方向の中心に揃うように、コンテンツがほぼ下にスクロールされたように見えます (下のスクリーンショットを参照)。

どうすればこれが起こり、最初にコンテンツの左上隅をビューの左上隅に揃えるという望ましい動作を実現するにはどうすればよいですか? webViewDidFinishLoad:` での設定はオプションですが、明らかにちらつきが発生しますscrollView.contentOffset(0,0)

これは、ルート ビューの下UIViewControllerに 2 つの兄弟 を含むのコンテキストで発生しています。UIWebView2 つUIWebViewの は垂直に積み上げられ、UILabel間に (灰色の背景のスクリーンショットに表示されます) があります。(下部UIWebViewは現在すべて白のため、スクリーンショットには表示されていません。)ビューは制約ベースのレイアウトを使用しており、現在の問題は上部に関係していUIWebViewます。

更新さらなる調査により、視覚的な欠陥は上部のスクロールによるものではなく、呼び出されるまでに(ステータス バーとナビゲーション バーを合わせた高さでもある)から に設定されていることUIWebViewが原因であることが明らかになりました。私はView Controllerから呼び出しています.Top Layout Guideの上部と下部の間に垂直方向のスペースを課す上部にレイアウト制約があります。frame.origin.y064webViewDidFinishLoadloadRequest:requestWithURL:viewWillAppear:UIWebView0

ここに画像の説明を入力

4

1 に答える 1

0

iOS 7 ではUIScrollView、下にスクロールしたときに s をステータス バーとナビゲーション バーの下に拡張する必要があります。どうやら、スクロールが発生する前に、Web コンテンツの上部がこれらのバーの後ろに隠れないようにする手段として、最初の垂直スクロールを実行するようです。

上に配置された上部レイアウト ガイドまでの垂直距離が 0 のレイアウト制約があったためUIWebView、画面の上部からステータス バーの高さとナビゲーション バーの高さの 2 倍の垂直距離が間違っていました。このレイアウト制約を、スーパービューからの垂直距離が 0 になるように 1 に置き換えると、間違っていた問題が修正されました。

于 2014-06-02T06:07:34.893 に答える