2017-02-24 9 views
1

webViewにhtml文字列をロードするときに、scrollViewDidScroll:メソッドでコールバックを取得しようとしましたが、コンテンツがスクロールしていて、scrollViewDidScrollが呼び出されません。私がURLRequestオブジェクトをwebViewに渡すと正常に動作します。scrollViewDidScrollがUIWebViewで呼び出されない

HTMLの文字列を読み込もうとすると、scrollViewのコンテンツサイズがスクロールビューのサイズと同じになり、URLを読み込もうとすると、scrollViewのサイズがscrollViewのサイズよりも大きくなります。その場合はscrollViewDidScroll:電話している。

私は多くのことを試しました。最初にスクロールビューデリゲートwebView.scrollView.delegate = selfを設定し、scrollViewDidScroll:メソッドを実装しても機能しません。次に、スクロールビューデリゲートに適合するwebViewの子クラスを作成しました。私は今、私はMyWebViewDelegateプロトコルに準拠し、方法myWebViewDidScroll:を実装scrollViewDidScroll:

protocol MyWebViewDelegate: class { 
    func myWebViewDidScroll(_ scrollView: UIScrollView) 
} 

class MyWebView: UIWebView { 
    public weak var scrollViewDelegate: MyWebViewDelegate? 
    override func scrollViewDidScroll(_ scrollView: UIScrollView) { 
     super.scrollViewDidScroll(scrollView) 
     scrollViewDelegate?.myWebViewDidScroll(scrollView) 
    } 
} 

として上書きします。すべての仕事をした後、私は myWebViewDidScroll:にコールバックを持っていましたが、スクロールビューがバウンスしました。

答えて

1

あなたはUIWebView.setに対してのみscrollViewのデリゲートを設定しますか?

webView.scrollView.delegate = self 
+0

ありがとうございます。しかし、私はすべてのデリゲートを設定しており、webViewがバウンスされたときに 'scrollViewDidScroll'が呼び出されています。そして、すでに 'URLRequest'オブジェクトをロードしたとしたら、同じコードでうまく動作します。私はHTMLの文字列を読み込むだけで問題があります。 –

+0

@ChanchalChauhan - そのコードを表示できます –

関連する問題