0

Xcode 5、iOS 7 を使用。

Web ビューのフレームを (0, 45, 320, 568 - 20 - 45 - 49) から (0, 0, 320, 568 - 20) に変更するか元に戻すと、問題が発生します。そのスーパービューは、フレーム (0、20、320、548) をアプリケーション ウィンドウの rootViewController に渡します。

Web ビューのフレームをコンテナーに (0, 45, 320, 568 - 20 - 45 - 49) に戻すと、Web ビューは 65 から (568 - 49) の垂直領域内にありますが、スクロール バーは 65 から周囲にスクロールします。 Web ビューの中央。

4

1 に答える 1

0

解決策

最後に、これを与えることで回避しました:

[[[_webViewContainer webView] scrollView] setScrollIndicatorInsets:UIEdgeInsetsMake(0, 0, 0, 0)];

新しい Web ページが Web ビューにロードされるたび、つまり、この UIWebViewDelegate プロトコル メソッドの最初の部分

-(BOOL)webView:shouldStartLoadWithRequest:navigationType

そのため、自動レイアウトがオンになっている場合でも、スクロール ビュー (Web ビューのプロパティ) にスクロール インジケーターの正しいスクロール範囲を強制することができます。

考えられる原因

予期しない動作の理由は、次の方法で確認できます。

UIEdgeInsets tempEdgeInsets;
tempEdgeInsets = [[_webView scrollView] scrollIndicatorInsets];
NSLog(@"scroll view edge insets = %f, %f, %f, %f", tempEdgeInsets.top, tempEdgeInsets.bottom, tempEdgeInsets.left, tempEdgeInsets.right);

私が推測する自動レイアウトのために、tempEdgeInsets.bottomWebビューフレームの変更が発生するたびに。520

于 2013-11-05T16:11:42.010 に答える