iOSでは、WKWebView
のスクロールビューにcontentInset
を設定すると、Webビューではページの内容がそれよりも大きくなっているように見えます。たとえば、ほとんど空のページの上部または下部にcontentInset
を指定すると、スクロールするものがないのにページをスクロールできます。WKWebView + contentInsetがコンテンツサイズを正しく設定しない
これが期待どおりの動作ですか? contentInset
をまだ使用できる回避策はありますか?
iOSでは、WKWebView
のスクロールビューにcontentInset
を設定すると、Webビューではページの内容がそれよりも大きくなっているように見えます。たとえば、ほとんど空のページの上部または下部にcontentInset
を指定すると、スクロールするものがないのにページをスクロールできます。WKWebView + contentInsetがコンテンツサイズを正しく設定しない
これが期待どおりの動作ですか? contentInset
をまだ使用できる回避策はありますか?
WKWebView
は、常にscrollviewのcontentInset
を差し引くことを無視して、そのフレームをビューポートサイズとして使用しているようです。私はworkaroundをstephan-lerouxで見つけることができました。
アイデアは、WKWebViewのフレームを手動または自動レイアウト制約を使用して、目的のビューポートサイズに設定することです。 contentInset
の「スクロール・下」効果を復元するには、scrollViewのmasksToBounds
を無効にします(ウェブビューのフレームのサイズを変更する)
wkWebview.scrollView.layer.masksToBounds = NO;
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)];
:
は、単にコードの例を共有したいと思いました