Swift : collectionView 显示时间过长
Swift : collectionView takes too long to display
我正在 Swift 中开发一个 iOS 应用程序。
我在集合视图中显示数据库中的数据,但显示在屏幕上需要很长时间。
肯定是线程问题,因为在 Xcode 控制台上,我可以看到数据在显示在屏幕上之前 20 秒显示。这是我的代码:
https://github.com/ProjetCedibo/projet/blob/master/Projet-L3-master/appli/SJEPG/SJEPG/CenterViewController.swift
如何使 collectionView 显示得更快?
如果发生这种情况,则意味着您正在从主线程以外的线程进行 UI 更改。试试这个:
func refresh() {
dispatch_async(dispatch_get_main_queue(), {
self.eventsCollection.reloadData()
})
}
发生的情况是代码可能 运行 在辅助线程上。您所做的任何 UI 更改都应该在主线程上进行。所以试试这个:
dispatch_async(dispatch_get_main_queue()){
// reload your collection view here
})
除了@StefanArentz 的回答
对于 Swift 3:
DispatchQueue.main.async {
// code to reload collection view
}
我正在 Swift 中开发一个 iOS 应用程序。
我在集合视图中显示数据库中的数据,但显示在屏幕上需要很长时间。 肯定是线程问题,因为在 Xcode 控制台上,我可以看到数据在显示在屏幕上之前 20 秒显示。这是我的代码: https://github.com/ProjetCedibo/projet/blob/master/Projet-L3-master/appli/SJEPG/SJEPG/CenterViewController.swift
如何使 collectionView 显示得更快?
如果发生这种情况,则意味着您正在从主线程以外的线程进行 UI 更改。试试这个:
func refresh() {
dispatch_async(dispatch_get_main_queue(), {
self.eventsCollection.reloadData()
})
}
发生的情况是代码可能 运行 在辅助线程上。您所做的任何 UI 更改都应该在主线程上进行。所以试试这个:
dispatch_async(dispatch_get_main_queue()){
// reload your collection view here
})
除了@StefanArentz 的回答
对于 Swift 3:
DispatchQueue.main.async {
// code to reload collection view
}