【问题标题】:scrollViewDidScroll not getting called in UIWebView在 UIWebView 中没有调用 scrollViewDidScroll
【发布时间】: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: 中收到了回调,但是当滚动视图反弹时。

【问题讨论】:

    标签: ios swift uiscrollview uiwebview


    【解决方案1】:

    你是不是只为 UIWebView 设置了委托。设置 scrollView 的委托。

    webView.scrollView.delegate = self
    

    【讨论】:

    • 谢谢。但是我已经设置了所有的代表,当 webView 被反弹时,scrollViewDidScroll 会被调用。正如我已经描述的,如果我加载 URLRequest 对象,它可以在相同的代码下正常工作。我只有加载 html 字符串的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多