当我在scrollViewDidScroll:
中加载html字符串时,我试图在webView
方法中获取回调,但是内容在滚动并且scrollViewDidScroll
没有得到调用。如果我在webView中传递URLRequest
对象,则效果很好。
我注意到的一件事是,如果我尝试加载html字符串,则scrollView内容大小与滚动视图大小相同,如果我尝试加载url,则它给出的scrollView内容大小将大于scrollView大小,在这种情况下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:
中获得了回调,但是当滚动视图跳动时。 最佳答案
您是否仅为UIWebView设置了委托。请设置scrollView的委托。
webView.scrollView.delegate = self