2017-09-15 134 views
1

我正在使用此庫https://github.com/ninjaprox/NVActivityIndicatorView來顯示加載指示器。默認情況下,它會阻止整個視圖控制器,但是如何僅顯示特定視圖的活動指示器。例如,如果一個視圖控制器包含一個webview和一些其他視圖,活動指示器應該只適用於webview,我應該能夠與另一個視圖交互。NVActivityIndi​​catorView僅用於特定視圖

class FaqViewController: UIViewController, UIWebViewDelegate 
{ 

    @IBOutlet var faqWebView: UIWebView! 
    static let activityData = ActivityData() 
    var activityIndicator : NVActivityIndicatorView! 

    override func viewDidLoad() 
    { 
     super.viewDidLoad() 
     faqWebView.delegate = self 
     faqWebView.loadRequest(URLRequest(url: URL(string: "https://www.google.com")!)) 
    } 

    func webViewDidStartLoad(_ webView: UIWebView) 
    { 
     NVActivityIndicatorView.DEFAULT_BLOCKER_SIZE = CGSize(width: 45, height: 45) 
     NVActivityIndicatorPresenter.sharedInstance.startAnimating(FaqViewController.activityData) 
    } 

    func webViewDidFinishLoad(_ webView: UIWebView) 
    { 
     NVActivityIndicatorPresenter.sharedInstance.stopAnimating() 
    } 
} 
+0

什麼你'UIWebView'框架 –

+0

截至目前它充滿整個視圖。但是我想在任何時候與導航控制器進行交互,即使在加載頁面時也要返回。 –

+0

使用'let x = self.view.center.x 讓y = self.view.center.y let frame = CGRect(x:(x-50),y:(())更改NVActivityIndi​​catorView的框架。 y - 50),寬度:100,高度:100) NVActivityIndi​​catorView(frame:frame)' –

回答

2

爲e.g顯示activityIndicator

func webViewDidStartLoad(_ webView: UIWebView) 
{ 
    //NVActivityIndicatorView.DEFAULT_BLOCKER_SIZE = CGSize(width: 45, height: 45) 
    //NVActivityIndicatorPresenter.sharedInstance.startAnimating(FaqViewController.activityData) 

    let xAxis = self.view.center.x // or use (view.frame.size.width/2) // or use (faqWebView.frame.size.width/2) 
    let yAxis = self.view.center.y // or use (view.frame.size.height/2) // or use (faqWebView.frame.size.height/2) 



let frame = CGRect(x: (xAxis - 50), y: (yAxis - 50), width: 45, height: 45) 
activityIndicator = NVActivityIndicatorView(frame: frame) 
activityIndicator.type = . ballScale // add your type 
activityIndicator.color = UIColor.red // add your color 

self.view.addSubview(activityIndicator) // or use webView.addSubview(activityIndicator) 
activityIndicator.startAnimating() 
} 

爲隱藏

func webView(_ webView: UIWebView, didFailLoadWithError error: Error) 
    { 
     hideactivityIndicator() 
    } 

    func webViewDidFinishLoad(webView: UIWebView!) 
    { 
     hideactivityIndicator() 
    } 

    func hideactivityIndicator() 
    { 

    activityIndicator. stopAnimating() 
    activityIndicator.removeFromSuperview() 
    } 
+0

添加它作爲子視圖對我來說伎倆.. –

+0

我試過相同的imageview,但它沒有工作?我可以知道什麼是問題。 imageview是視圖的子視圖。 –

+0

imageview意味着 –

相關問題