【发布时间】:2015-11-11 12:13:30
【问题描述】:
UICollectionView 有一些内置的数据源方法,例如“cellforItemAtIndexPath”方法和“numberofitemsinsection”方法。如果我理解正确,这些方法会在 viewDidLoad() 完成后调用。但是,出于我的目的,我希望能够准确控制调用这些方法的时间点。我该怎么做?
原因是我正在加载加载一些图像,我想在调用这些方法之前完成加载任务。
【问题讨论】:
-
如果你想手动触发这个方法,只需重新加载集合视图 [self.collectionView reloadData];或者您需要在遇到这些委托时在您的应用程序中做一些事情,然后您最好尝试一个自定义 collectionview 和一个 delgate 来完成所需的操作
-
你不能。您可以触发一系列特定的呼叫,但在那之后您将无法控制。最接近的方法是确保在要触发加载之前未设置数据源属性。
-
好的,关键是我正在下载图像,需要它们在调用这些数据源方法之前完成下载。由于我的图片下载是异步进行的,因此我目前无法控制我的所有下载都先进行。
-
最好在collectionview显示后异步加载图片。或者,如果图像绝对重要,您可以展示一个微调器。加载图像后,重新加载 collectionView 并隐藏微调器。回答你的问题:我不认为你想要什么是可能的。
-
我在 viewDidLoad 中有微调器,但是在转换到视图之前,我从数据源方法中收到了编译器错误。由于这些数据源方法依赖于下载的成功执行,这是可以理解的。理论上我可以使用信号量,但我真的不想走这条路。
标签: ios objective-c xcode uicollectionview