无法在 Swift 3 中启动 Activity 指标?

Unable to start Activity Indicator in Swift 3?

我是 IOS 的新手。我试图在加载 Web 视图时实现 activity 指示器,但我无法进行 that.While 调试 我遇到动画师正在启动但它不可见。我正在使用 swift 3。这里我的代码是 below.Please 让我知道我做错了什么。如果有人有很好的资源来了解 activity 指标,请也提及。

class ViewController: UIViewController,UIWebViewDelegate {

   var WebView: UIWebView!

    override func viewDidLoad()
    {
        super.viewDidLoad()

        WebView = UIWebView(frame: UIScreen.main.bounds)
        WebView.delegate = self
        view.addSubview(WebView)
        if let url = URL(string: "https://apple.com")
        {
            let request = URLRequest(url: url)
            WebView.loadRequest(request)
        }
        activityindicator.startAnimating()
        activityindicator.color = UIColor.black
        activityindicator.alpha = 1
        activityindicator.isHidden = false

    }

   // weak var activityindicator: UIActivityIndicatorView!
    let activityindicator = UIActivityIndicatorView()

    func webViewDidStartLoad(_ webView: UIWebView)
    {
        activityindicator.startAnimating()
        activityindicator.color = UIColor.black
        activityindicator.alpha = 1
        activityindicator.isHidden = false


        UIApplication.shared.isNetworkActivityIndicatorVisible = true
    }

    func webViewDidFinishLoad(_ webView: UIWebView)
    {
        UIApplication.shared.isNetworkActivityIndicatorVisible = false
        activityindicator.stopAnimating()
        activityindicator.alpha = 0
        activityindicator.isHidden = true
    }

    func webView(webView: UIWebView, didFailLoadWithError error: NSError)
    {
        activityindicator.isHidden = true
    }
}

看起来 activity 指标未添加到视图中。与我们添加 webview 的方式类似,在 viewDidLoad 中居中并添加指示器(代码如下)。

activityindicator.center = self.view.center view.addSubview(activityindicator)

我还建议将全局声明移到一个地方。即,将指标声明 let activityindicator = UIActivityIndicatorView() 移动到 webview 的下方,而不是 class 的中间。这有助于快速阅读。

这是您的完整代码。现在可以使用了 -

import UIKit

class ViewController: UIViewController,UIWebViewDelegate {

    var WebView: UIWebView!

    override func viewDidLoad()
    {
        super.viewDidLoad()

        WebView = UIWebView(frame: UIScreen.main.bounds)
        WebView.delegate = self
        view.addSubview(WebView)
        if let url = URL(string: "https://apple.com")
        {
            let request = URLRequest(url: url)
            WebView.loadRequest(request)
        }
        activityindicator.startAnimating()
        activityindicator.center = self.view.center
        view.addSubview(activityindicator)
        activityindicator.color = UIColor.black
        activityindicator.alpha = 1   
    }
    // weak var activityindicator: UIActivityIndicatorView!
    let activityindicator = UIActivityIndicatorView()

    func webViewDidStartLoad(_ webView: UIWebView)
    {
        activityindicator.startAnimating()
        activityindicator.color = UIColor.black
        activityindicator.alpha = 1
        activityindicator.isHidden = false


        UIApplication.shared.isNetworkActivityIndicatorVisible = true
    }

    func webViewDidFinishLoad(_ webView: UIWebView)
    {
        UIApplication.shared.isNetworkActivityIndicatorVisible = false
        activityindicator.stopAnimating()
        activityindicator.alpha = 0
        activityindicator.isHidden = true
    }

    func webView(webView: UIWebView, didFailLoadWithError error: NSError)
    {
        activityindicator.isHidden = true
    }
}