Ran*_*Guy 7 ios pull-to-refresh swift wkwebview
我已经WKWebView在iOS中直接实现了.
var refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: Selector("refreshWebView"), forControlEvents: UIControlEvents.ValueChanged)
Run Code Online (Sandbox Code Playgroud)
这是在 viewDidLoad()
和相应的refreshWebView功能.但是当我在移动设备或模拟器上运行它时,无论我拖动多少,都没有拉动刷新动作.什么都没有被触发,几乎感觉我被困在屏幕的上限.哪里可能出错?
Nir*_*v D 11
尝试改变你这样的代码,如果你想拉来refresh的webView,你需要addSubView UIRefreshControl在对象ScrollView的webView这样
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(self.refreshWebView(_:)), forControlEvents: UIControlEvents.ValueChanged)
webView.scrollView.addSubview(refreshControl)
Run Code Online (Sandbox Code Playgroud)
像这样添加func
func refreshWebView(sender: UIRefreshControl) {
print("refersh")
webView.loadRequest(NSURLRequest(URL: NSURL(string: "https://google.com")!))
sender.endRefreshing()
}
Run Code Online (Sandbox Code Playgroud)
希望这会帮助你.
SWIFT 4解决方案(基于Nirav D答案)
您可以在以下位置简单地调用此设置方法viewDidLoad:
private func setupRefreshControl() {
let refreshControl = UIRefreshControl()
refreshControl.addTarget(self, action: #selector(refreshWebView(sender:)), for: UIControlEvents.valueChanged)
webView.scrollView.addSubview(refreshControl)
}
@objc
private func refreshWebView(sender: UIRefreshControl) {
print("refreshing...")
webView.load(URLRequest(url: url))
sender.endRefreshing()
}
Run Code Online (Sandbox Code Playgroud)