swift - Swift 中的事件指示器表格 View

标签 swift animation

当 View 打开时,我希望动画开始,然后获取数据(下载),然后在下载完成后停止。如果下面的代码能够工作那就太好了!嗯,事情可能没那么简单。

override func viewDidLoad() {
    super.viewDidLoad()

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

最佳答案

看起来一切都运行良好。您开始调用 startAnimating() 方法。但是,您没有检查以确保 getDataFromDatamanager() 是否完整。所以现在发生的事情是您的 activityIndi​​cator 正在播放动画并立即停止动画,因为您没有检查 getDataFromDatamanager() 是否已完成执行。您需要做的是创建一个 completion handler对于您的 getDataFromDatamanager() 并在该完成处理程序中,您必须调用 activityIndi​​cator.stopAnimating()

此外,如果您需要创建完成处理程序的帮助,网上有很多教程。如果没有更多代码,我无法真正帮助您创建完成处理程序。

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

关于swift - Swift 中的事件指示器表格 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35422920/

相关文章:

ios - 将平移手势添加到 UICollectionView 单元格 - IOS/Swift

ios - UIView 动画在设备上滞后

jquery - 汽车横幅动画网站

swift - 两种声明 ViewController 对象的方式之间的区别

objective-c - 通过 `id` 在 Objective-C 中调用 Swift 闭包

javascript - 鼠标悬停时jQuery透明图片描述幻灯片动画

jquery - 使用 css3 动画加载网站

jquery - 在滚动位置上对 HTML 元素进行动画处理

ios - 使用 UIScrollView 中的动态内容调整 UiView 高度(Swift)

ios - 在更新中添加新数组的问题