网站加载时显示 activity 指示器

Show activity indicator while website is loading

我正在寻找 ios 8 swift 2 解决方案,用于在我的网站在后台加载时显示 activity 指示器。

目前,我有这个代码:

    override func viewDidLoad() {
    super.viewDidLoad()
    var url = "http://www.google.de"
    let requestURL = NSURL(string:url)
    let request = NSURLRequest(URL: requestURL!)
    webView.loadRequest(request) }

问题是,在加载网站时,视图控件一直是白色的。我希望你能帮助我:)

您需要向控制器的视图添加一个 activity 指示器。查看本教程:http://www.ioscreator.com/tutorials/activity-indicator-tutorial-ios8-swift

将 Activity Indicator View 拖到 ViewController class 并在此行之后添加以下代码 // webView.loadRequest(request) // 或者哪一行加载 url.

activityIndicatorView.startAnimating()

停止动画使用

activityIndicatorView.stopAnimating()

您还可以使用停止和开始按钮或任何其他操作。

您可以使用 MBProgressHUD library for loading indicator in swift, also you can check How to use MBProgressHUD with swift 如果它适合您的情况。

如果你愿意,请参考这个答案


无论如何都在这里(以防被删除)

在Swift5中测试,您可以使用以下简单扩展:

// Activity Indicator Extension
var vSpinner : [UIView] = []

extension UIViewController {
    func showSpinner(onView : UIView) {
        let spinnerView = UIView.init(frame: onView.bounds)
//        spinnerView.backgroundColor = UIColor.init(red: 0.8, green: 0.8, blue: 0.8, alpha: 0.9)
        let ai = UIActivityIndicatorView.init(style: .medium)
        ai.startAnimating()
        ai.center = spinnerView.center
        
        DispatchQueue.main.async {
            spinnerView.addSubview(ai)
            onView.addSubview(spinnerView)
        }
        
        vSpinner.append(spinnerView)
    }
    
    func removeSpinner() {
        DispatchQueue.main.async {
            vSpinner.popLast()?.removeFromSuperview()
        }
    }
}

在你的异步任务中使用这两个得心应手的男孩:

showSpinner(onView: self.view)记得把self.view替换成你想要的任何一种视图

self.removeSpinner() 删除加载指示器: