2017-02-24 60 views
1

我試圖在webView加載html字符串時調用scrollViewDidScroll:方法,但內容正在滾動,而scrollViewDidScroll沒有被調用。如果我通過webview中的URLRequest對象,它工作正常。scrollViewDidScroll在UIWebView中沒有被調用

有一兩件事我注意到的是,如果我試圖加載HTML字符串,然後滾動視圖內容大小是一樣的滾動視圖大小,如果我嘗試加載網址它給滾動視圖內容大小比滾動視圖大小,在這種情況下scrollViewDidScroll:更大接電話。

我已經嘗試了很多東西。首先我設置滾動查看委託webView.scrollView.delegate = self和實施scrollViewDidScroll:方法,但它不起作用,然後我做了一個符合滾動視圖委託的webView的子類。我重寫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) 
    } 
} 

現在我符合MyWebViewDelegate協議和實現方法myWebViewDidScroll:。完成所有工作之後,我在myWebViewDidScroll:中得到了回調,但是當滾動視圖反彈時。

回答

1

您是否僅爲UIWebView.set scrollView的委託設置了委託。

webView.scrollView.delegate = self 
+0

謝謝。但是我已經設置了所有委託,並且在webView被退回時調用'scrollViewDidScroll'。正如我已經描述過的,如果我加載了'URLRequest'對象,它可以在相同的代碼下正常工作。我只有加載html字符串的問題。 –

+0

@ChanchalChauhan - 可以顯示代碼 –