NVActivityIndi​​catorView在按按钮时不起作用

时间:2019-02-06 17:16:59

标签: ios swift mobile

我在应用程序中有以下代码用于测试NVActivityIndicatorView的实现:

@IBAction func goButtonPressed(_ sender: Any) {
    self.startAnimatingActivityIndicator()
    sleep(2)
    self.stopAnimatingActivityIndicator()
}

我的应用程序中的视图控制器也具有以下扩展名:

extension UIViewController: NVActivityIndicatorViewable {
    func startAnimatingActivityIndicator() {
        let width = self.view.bounds.width / 3
        let height = width
        let size = CGSize(width: width, height: height)
        startAnimating(size, message: "Loading...", type: NVActivityIndicatorType.circleStrokeSpin)
    }

    func stopAnimatingActivityIndicator() {
        self.stopAnimating()
    }
}

加载动画可以在同一视图控制器中的其他地方工作(即viewDidLoad()函数),但是由于某种原因,我无法使加载动画在此按钮上起作用。该按钮正确连接,因为该应用程序确实在适当的时间睡眠了,但是加载的动画无法运行。

预先感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

@FryAnEgg随附解决方案! sleep(2)阻止了加载动画的运行。

这是我更新的代码:

@IBAction func goButtonPressed(_ sender: Any) {
    self.startAnimatingActivityIndicator()

    DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 2) {
        self.stopAnimatingActivityIndicator()
    }
}

答案 1 :(得分:0)

该指示器不会旋转,因为主线程处于睡眠状态。请改用2秒计时器关闭旋转功能。