2017-11-09 23 views
0

異なるWebビューをページとして表示するページスクロールビューを使用しています。スクロールビューでは、前後のページをスクロールビューで表示できるように、clipsToBounds = falseが設定されています。範囲外にスクロールしたときにWKWebViewに何が起こるか

ページをスクロールすると、WKWebViewsのコンテンツが完全に見えなくなる正確な瞬間が1つあります。これは、現在のところ、Webビューがスクロールビューの境界を去っているときに正確に発生します(下記参照)。一部のWebサイトでは、表示範囲外のコンテンツは実際のコンテンツとは異なります。

wkwebview hides wkwebview different content

WKWebViewの代わりのUIWebViewを使用した場合、これらの問題は、(のUIWebViewで意図したとおりにすべてが動作します)のみを発生します。

誰かがWKWebViewで同様の問題を経験したことがあり、解決策がありますか?

EDIT: そこにはあなたがバグを経験し、それで遊んでできるGithubに、上の今サンプルプロジェクトです: WKWebView test project

+1

これは面白いバグです。よりよい解決策があると確信していますが、UICollectionviewを使ってスクロールして最初の3ページを読み込むことで修正できると思います。スクロールした後、他のページを読み込むことができます。 –

答えて

1

はそれを把握するために、私はあなたがUICollectionViewを使用する必要があると思います。 セルがWKWebViewと共に存在する必要があります。

1)あなたは、コンテンツpagebleを作ることになりますHere

と次の問題のように、それを配置する必要があります。 2)右のあなたは、後Here

3)のようなあなたのコレクションの上にUIScrollViewのを追加するには、UIScrollViewののpagebleを作るとのviewDidLoadで記述する必要がそれを行うには: collectionView.addGestureRecognizer(scrollView.panGestureRecognizer)

4)あなたはUICOllectionViewに表示するためのモデルを受け取った後、 - UIScrollViewDelegate

extension YourVC: UIScrollViewDelegate { 
    func scrollViewDidScroll(_ scrollView: UIScrollView) { 
     if scrollView == self.scrollView { 
      collectionView.contentOffset = scrollView.contentOffset 
     } else if scrollView == self.collectionView { 
      self.scrollView.contentOffset = scrollView.contentOffset 
     } 
    } 
} 
実装)

scrollView.contentSize = CGSize(width: (models.count*(cellWidth+cellIndent) + sectionIndent * 2), height: cellHeight) 

5のようにUIScrollViewのcontentSizeのあなたを更新

それはそれです。ハッピーコーディング=)

+0

私はそれほど複雑ではない解決策を望んでいましたが、これはうまくいきます。私はUICollectionViewの代わりに通常のUIViewを使用しました。 – j0h4nn3s

0

WKWebViewは、UIWebViewよりパフォーマンスが向上するように設計されています。ビュー階層の上にない場合は、Webページの一部の実行を停止したり、レンダリングを完全に停止したりします。ここで問題となるのは、Webページがスクロールビューの範囲外になると、WKWebViewは、clipsToBounds = falseを設定することによって表示されていても、画面上にあるとはみなしません。

最も簡単なことは、UIWebViewを使用することです。何らかの理由でWebKitが必要な場合は、ページングコードを調整して、スクロールビューがView Controller全体に及ぶようにしてください。

+0

私はUIWebViewを複数の理由で使用することはできません。また、私は非難されると考えられるコンポーネントを使用したくありません。 – j0h4nn3s

関連する問題