【问题标题】:Why do not working UIRefreshControl in Swift?为什么不在 Swift 中使用 UIRefreshControl?
【发布时间】:2020-03-20 12:54:15
【问题描述】:

我使用WKWebview中的刷新功能。执行刷新时该功能正常。但是当我加载另一个html 文件并返回时,它并没有刷新。

@IBOutlet var myWebView: WKWebView!
var refController:UIRefreshControl = UIRefreshControl()

override func viewDidLoad() {
    super.viewDidLoad()
    myWebView.uiDelegate = self
    myWebView.navigationDelegate = self
    myWebView.scrollView.delegate = self
    refController.bounds = CGRect.init(x: 0.0, y: 50.0, width: refController.bounds.size.width, height: refController.bounds.size.height)
    refController.addTarget(self, action: #selector(self.webviewRefresh(refresh:)), for: .valueChanged)
    myWebView.scrollView.addSubview(refController)
    ...
}

@objc func webviewRefresh(refresh:UIRefreshControl){
    refController.endRefreshing()
    myWebView.reload()
}

extension mainWebViewController: UIScrollViewDelegate{
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        print("come in ??")
        if currentHtmlFileName == "Main.html" {
            scrollView.bounces = (scrollView.contentOffset.y <= 0)
        } else {
            scrollView.bounces = false
        }
    }
}

从我的代码中可以看出,我的WKWebview 正在滚动,函数被执行。但是,当函数在不同的屏幕上被激活并返回时,函数不会被调用,刷新也不会起作用。

重现问题的步骤如下:

  1. 加载WKwebView页面并执行刷新功能。
  2. 滚动到底部屏幕以查看是否有弹跳。
  3. 如果工作正常,请转到其他屏幕。 location.href = "./other.html";
  4. 从另一个屏幕滚动到底部屏幕以查看是否有 弹跳。
  5. 如果没有正常弹跳,请返回屏幕。 history.back()
  6. 然后再次运行刷新功能。

在我的情况下,我有一个反弹,但刷新没有运行,并且没有调用该函数。

有没有人和我一样的问题解决过?这是bug???

【问题讨论】:

    标签: javascript ios swift refresh


    【解决方案1】:

    我对这个问题想了很多。所以我的结论是history.back() 不会改变bounce 的值。因此,bounce 的值为false

    所以我想我应该重新初始化这个值。所以我在完成页面导航的部分添加了一个功能。

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
         if currentHtmlFileName == "Main.html" {
             scrollViewDidScroll(myWebView.scrollView)
         }
    }
    

    通过这个添加,反弹值被重新初始化,我的刷新工作了。

    【讨论】:

      猜你喜欢
      • 2015-09-09
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多