繁体   English   中英

Swift:WKWebView 中 UIRefreshControl 的自定义操作

[英]Swift: Custom action for UIRefreshControl in WKWebView

我正在使用最新的XcodeSwift版本。

我正在使用WKWebView显示来自我的网络服务器的内容。

我正在使用以下代码pull to refresh

let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(refreshWebView(_:)), for: UIControl.Event.valueChanged)
homeWebView.scrollView.addSubview(refreshControl)

由于刷新似乎与(重新)加载 URL 不同,这会导致一些意外行为。 此外,它不会触发func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) { .

有什么方法可以catch pull to refresh function 并制作一些自定义内容,例如加载另一个 URL?

您可以只更改您传递给自定义操作的Selector中的操作,方法如下:

refreshControl.addTarget(self, action: #selector(myCustomAction), for: UIControl.Event.valueChanged)

行动:

@objc func myCustomAction() {
    print("my custom action here...")
}

Swift 4 和 Swift 5

lazy var refreshControl: UIRefreshControl = {
    let ref = UIRefreshControl()
    ref.attributedTitle = NSAttributedString(string: "Pull to refresh")
    ref.tintColor = UIColor.red
    ref.addTarget(self, action: #selector(refreshData), for: UIControl.Event.valueChanged)
    return ref
}()
  override func viewDidLoad() {
        super.viewDidLoad()
        myWebView.scrollView.addSubview(refreshControl) 
    }
@objc func refreshData(){
    //TODO:- Do whatever you want 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM