如何在WebView中添加拉取到刷新?

我很新开发。 我正在构build一个WebView,我希望它有拉动刷新function。 我该如何迅速做到这一点?

我在View Controller中的代码是

@IBOutlet var webView: UIWebView! override func viewDidLoad() { super.viewDidLoad() func webViewDidFinishLoad(webView: UIWebView) { UIApplication.sharedApplication().networkActivityIndicatorVisible = false } func webViewDidStartLoad(webView: UIWebView) { UIApplication.sharedApplication().networkActivityIndicatorVisible = true } let url = NSURL (string: "https://www.foo.com"); let requestObj = NSURLRequest(URL: url!); webView.loadRequest(requestObj); NSUserDefaults.standardUserDefaults().registerDefaults(["UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17"]) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } 

}

您的代码是错误的,您添加了两个Web视图委托在ViewDidLoad方法,必须遵循以下检查以下viewDidLoad代码添加ViewDidLoad刷新在Web视图中:

 @IBOutlet var webView: UIWebView! var refController:UIRefreshControl = UIRefreshControl() override func viewDidLoad() { super.viewDidLoad() let url = NSURL (string: "https://www.foo.com"); let requestObj = NSURLRequest(URL: url!); webView.loadRequest(requestObj); NSUserDefaults.standardUserDefaults().registerDefaults(["UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17"]) refController.bounds = CGRectMake(0, 50, refController.bounds.size.width, refController.bounds.size.height) refController.addTarget(self, action: Selector("mymethodforref:"), forControlEvents: UIControlEvents.ValueChanged) refController.attributedTitle = NSAttributedString(string: "Pull to refresh") webView.scrollView.addSubview(refController) } func mymethodforref(refresh:UIRefreshControl){ webView.reload() refController.endRefreshing() } func webViewDidFinishLoad(webView: UIWebView) { UIApplication.sharedApplication().networkActivityIndicatorVisible = false } func webViewDidStartLoad(webView: UIWebView) { UIApplication.sharedApplication().networkActivityIndicatorVisible = true } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } } 

下面的代码将刷新控制在webview的scrollview.Initially它将加载google.com。 为了看到清晰的刷新我已经设置了白色的滚动视图的背景,所以它是清晰可见的拉拉刷新webview打开Facebook页面。

 class ViewController: UIViewController,UIWebViewDelegate { @IBOutlet weak var webView: UIWebView! var refreshControl:UIRefreshControl? override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.refreshControl = UIRefreshControl.init() refreshControl!.addTarget(self, action:#selector(refreshControlClicked), for: UIControlEvents.valueChanged) self.webView.scrollView.addSubview(self.refreshControl!) self.webView.scrollView.backgroundColor = UIColor.white self.webView.delegate = self let url:URL = URL.init(string:"https://www.google.com")! self.loadRequestWithUrl(URLRequest.init(url: url)) } func webViewDidStartLoad(_ webView: UIWebView) { NSLog("website loaded") } func loadRequestWithUrl(_ urlRequest : URLRequest?){ if(urlRequest != nil){ self.webView.loadRequest(urlRequest!) } } func refreshControlClicked(){ let url:URL = URL.init(string:"https://www.facebook.com")! self.loadRequestWithUrl(URLRequest.init(url: url)) } }