快速活动指标tableview

时间:2016-02-16 03:03:29

标签: swift animation

打开视图时我希望动画启动,然后获取数据(下载),然后在下载完成后停止。如果下面的代码可行,那不是很好!嗯,它可能不是那么简单。

override func viewDidLoad() {
    super.viewDidLoad()

    activityIndicator.startAnimating()
    getDataFromDatamanager()
    activityIndicator.stopAnimating()
}

1 个答案:

答案 0 :(得分:1)

看起来你运行得很好。您开始调用startAnimating()方法。但是,您无需检查以确保getDataFromDatamanager()完整。所以现在发生的事情是你的activityIndicator动画并立即停止动画,因为你没有检查getDataFromDatamanager()是否已经完成执行。您需要做的是为getDataFromDatamanager()创建completion handler,在该完成处理程序中,您必须致电activityIndicator.stopAnimating()

此外,如果您需要帮助创建完成处理程序,Web上有许多教程。在没有更多代码存在的情况下,我无法真正帮助您创建完成处理程序。

修改 只是为我的答案添加更多信息。它启动并立即停止的原因是因为getDataFromDatamanager()异步,这意味着您的代码不会等待getDataFromDatamanager()完成执行。 getDataFromDatamanager()将在不同的线程上运行并跳过该行并立即调用stopAnimating(),这就是为什么你必须检查getDataFromDatamanager()完成执行的原因,其中一种方法是使用completionHandler