簡體   English   中英

NVActivityIndi​​catorView僅適用於特定視圖

[英]NVActivityIndicatorView only for particular view

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

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

例如,顯示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()
  }

您必須將其添加為子視圖,以便顯示要顯示的視圖。 在您的情況下,您只想在UIWebView上顯示,那么您的代碼應該是這樣的

self.faqWebView.addSubView(activityIndicator)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM