本文介绍了在我准备好数据之前,如何防止cell ForItemAtIndexPath执行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我将把图像作为Base64数据从我的服务器返回到我的应用程序,但在我得到用户的位置之前,我不会向我的服务器请求图像,我只在用户登录到应用程序(它显示UICollectionView)之后才会有。
我的问题是collectionView:cellForItemAtIndexPath:
在我为单元格准备好数据之前被调用。在我的NSURLConnection
收到来自服务器的完整响应并获得Base64编码的图像数据之前,我可以通过哪些方式阻止调用此方法?
(我将UICollectionView
用作NSURLConnectionDataDelegate
和NSURLConnectionDelegate
,并且我有一个将获取图像的单独类(RenderMetadata()
),这可能也是相关的。)
编辑:感谢您的所有创新答案!我想出了一种方法来实现我想要的东西。我会解释的,但我还没有分享我的代码,所以我认为甚至提出它都不是一个好主意,因为那只会导致混淆。基本上,我在情节提要中向我的视图控制器添加了一个对象,它引用了我用来从服务器获取Base64编码图像字符串的类。
推荐答案
设置集合视图委托,并在收到响应时重新加载集合。在此之前,让他们保持冷静。如果集合视图的delegate
和dataSource
为空,则不会加载数据。
func handleDataLoaded()
{
// Your code that handles data.
...
// Load the collection with data
self.collectionView.delegate = self
self.collectionView.dataSource = self
self.collectionView.reloadData()
}
这篇关于在我准备好数据之前,如何防止cell ForItemAtIndexPath执行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!