当 View 打开时,我希望动画开始,然后获取数据(下载),然后在下载完成后停止。如果下面的代码能够工作那就太好了!嗯,事情可能没那么简单。
override func viewDidLoad() {
super.viewDidLoad()
activityIndicator.startAnimating()
getDataFromDatamanager()
activityIndicator.stopAnimating()
}
最佳答案
看起来一切都运行良好。您开始调用 startAnimating()
方法。但是,您没有检查以确保 getDataFromDatamanager()
是否完整。所以现在发生的事情是您的 activityIndicator
正在播放动画并立即停止动画,因为您没有检查 getDataFromDatamanager()
是否已完成执行。您需要做的是创建一个 completion handler对于您的 getDataFromDatamanager()
并在该完成处理程序中,您必须调用 activityIndicator.stopAnimating()
此外,如果您需要创建完成处理程序的帮助,网上有很多教程。如果没有更多代码,我无法真正帮助您创建完成处理程序。
编辑:
只是为了在我的答案中添加更多信息。它启动并立即停止的原因是 getDataFromDatamanager()
是异步,这意味着您的代码不会等待 getDataFromDatamanager()
完成执行。 getDataFromDatamanager()
将在不同的线程上运行并跳过该行,并立即调用 stopAnimating()
,这就是为什么您必须检查 getDataFromDatamanager()
完成执行,其中一种方法是使用 completionHandler
。
关于swift - Swift 中的事件指示器表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35422920/