在网站加载时显示活动指示器

时间:2015-08-05 20:14:40

标签: ios webkit swift2

我搜索ios 8 swift 2解决方案,以便在我的网站在后台加载时显示活动指示器。

目前,我有这段代码:

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

问题是,在加载webseite时,视图控件是整个时间白色。我希望你能帮助我:)。

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

将活动指示器视图拖到ViewController类,并在此行// webView.loadRequest(request) //之后添加以下代码,或者加载该URL的行。

<强> activityIndi​​catorView.startAnimating()

停止动画使用

<强> activityIndi​​catorView.stopAnimating()

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

答案 2 :(得分:1)

您可以使用MBProgressHUD库在swift中加载指标,也可以检查How to use MBProgressHUD with swift是否在您的情况下正常工作。

答案 3 :(得分:0)

如果您愿意,请参考此答案

https://stackoverflow.com/a/65136127/2131039


在这里仍然可以(以防万一它被删除了)

在Swift 5中进行了测试,您可以使用以下简单扩展名:

// 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()卸下加载指示器: