2016-03-28 9 views
1

Gelişmekte çok yeniyim. Bir WebView yapıyorum ve yetenekleri yenilemek için çekime sahip olmasını istiyorum. Bunu hızlıca yapmayı nasıl yaparım?WebView'de Refresh'e Refresh'i nasıl eklerim?

View Controller Benim kod

@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() 

} 

}

cevap

2

Kişisel kod tarafında iki Web görünümü Delege izleyerek ve eklemek için aşağıdaki viewDidLoad kodu kontrol edilmelidir ViewDidLoad yöntemi eklendi arabası olduğunu Web görünümünde yenilemek için Çekme:

@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() 

    } 

} 
+0

Çok teşekkür ederim. Yine, ben sadece kod öğrenme başladı ve ben lisede yaşıyorum bu yüzden zamanınız için teşekkürler –

1

Aşağıdaki kod, webvieview'ın scrollview uygulamasında yenileme kontrolünü koyacaktır. w.İlk olarak google.com'u yükleyecektir. Çekme işleminin açıkça yenilenmesini görmek için kaydırma görünümünü arka planına beyaz renk ayarladım, böylece açıkça görülebiliyor ve webview'i yenilemek için çekin facebook sayfasını açıyor.

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)) 
} 
} 
+0

Bu kod Swift 4 kullanarak benim için çalıştı. Projemde değiştirmek zorunda tek şey (nedense ben Swift için yeni olduğum için emin değilim): '@objc fonk refreshControlClicked() { baskı ("tetiklenen yenilenecektir") refreshControl.endRefreshing() } ' –

İlgili konular