繁体   English   中英

无法在Swift 3中启动活动指示器?

[英]Unable to start Activity Indicator in Swift 3?

我是IOS的新手。 我正在尝试在加载Web视图时实现活动指示器,但是我无法做到这一点。在调试时,我遇到了动画师正在启动但看不到的动画师。 我正在使用swift3。这里的代码如下。请让我知道我在做什么错。 如果有人有足够的资源来了解活动指标,也请提及。

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

好像没有将活动指示器添加到视图中。 类似于我们添加webview的方法,将指示器居中并添加到viewDidLoad中(下面的代码)。

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

我也建议将全球宣言移到一个地方。 即,将指示器声明移动到let activityindicator = UIActivityIndicatorView() ,使其位于webview的顶部下方,而不是类的中间。 这有助于快速阅读。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM