2015-11-25 25 views
7

iOSでは、WKWebViewのスクロールビューにcontentInsetを設定すると、Webビューではページの内容がそれよりも大きくなっているように見えます。たとえば、ほとんど空のページの上部または下部にcontentInsetを指定すると、スクロールするものがないのにページをスクロールできます。WKWebView + contentInsetがコンテンツサイズを正しく設定しない

これが期待どおりの動作ですか? contentInsetをまだ使用できる回避策はありますか?

答えて

4

WKWebViewは、常にscrollviewのcontentInsetを差し引くことを無視して、そのフレームをビューポートサイズとして使用しているようです。私はworkaroundstephan-lerouxで見つけることができました。

アイデアは、WKWebViewのフレームを手動または自動レイアウト制約を使用して、目的のビューポートサイズに設定することです。 contentInsetの「スクロール・下」効果を復元するには、scrollViewのmasksToBoundsを無効にします(ウェブビューのフレームのサイズを変更する)

wkWebview.scrollView.layer.masksToBounds = NO; 
1

weiyinのsuggestionは私のために働きました。

CGFloat topInset = ...; 
web.scrollView.layer.masksToBounds = NO; 
[web.scrollView setContentInset:UIEdgeInsetsMake(topInset, 0, 0, 0)]; 
[web setFrame:CGRectMake(0, 0, web.width, web.height-topInset)]; 

は、単にコードの例を共有したいと思いました
関連する問題