在 UIWebView 中没有调用 scrollViewDidScroll
Posted
技术标签:
【中文标题】在 UIWebView 中没有调用 scrollViewDidScroll【英文标题】:scrollViewDidScroll not getting called in UIWebView 【发布时间】:2017-02-24 07:00:43 【问题描述】:当我在webView
中加载html 字符串但内容正在滚动并且scrollViewDidScroll
没有被调用时,我试图在scrollViewDidScroll:
方法中获取回调。如果我在 webView 中传递 URLRequest
对象,它可以正常工作。
我注意到的一件事是,如果我尝试加载 html 字符串,则 scrollView 内容大小与滚动视图大小相同,如果我尝试加载 url,它会给出 scrollView 内容大小大于 scrollView 大小,在这种情况下 @987654325 @接电话。
我尝试了很多东西。首先我设置滚动视图委托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 设置了委托。设置 scrollView 的委托。
webView.scrollView.delegate = self
【讨论】:
谢谢。但是我已经设置了所有的代表,当 webView 被反弹时,scrollViewDidScroll
会被调用。正如我已经描述的,如果我加载 URLRequest
对象,它可以在相同的代码下正常工作。我只有加载 html 字符串的问题。以上是关于在 UIWebView 中没有调用 scrollViewDidScroll的主要内容,如果未能解决你的问题,请参考以下文章
iPhone - UIWebView 在没有数据连接的情况下不调用 didFailLoadWithError
使用没有alertView的UIWebView在iOS中以编程方式进行电话呼叫
没有调用 didReceiveAuthenticationChallenge
如果从 tableView:didSelectRowAtIndexPath 调用 UIWebView 不调用 loadRequest: