如何在UICollectionView的cellForItemAtIndexPath中回收控制器?

时间:2015-01-08 08:37:22

标签: ios objective-c uicollectionview

我正在显示许多单元格,其内容合理地占用内存。我有一个自定义控制器,用于设置视图以显示内容,并定期更新UI。但是,UICollectionView通常会多次询问特定的单元格。我想知道如何设计(好)一个系统来重新使用控制器+视图,如果我已经为给定的数据创建了它。我考虑过在数据对象中存储控制器引用,但不知道是否将UI元素存储在数据对象中是一个好主意。另外,如果我这样做,我需要在单元格卸载时监视retainCount,当它变为“1”时,将其从数据对象中删除,这看起来有点hacky。同样,NSDictionary中的UICollectionView数据 - >控制器对也可以工作,并且还需要监视retainCount,或者为我的特定情况重新实现保留计数机制。这是可行的,但看起来很笨重。

我对ios很新,所以我可能正在接近这一切。非常感谢任何建议!

1 个答案:

答案 0 :(得分:0)

首先,想一想在单元格内显示控制器视图是个好主意。我不确定,但由于我对你的项目并不熟悉,只有你能说出来的东西。

其次,您可以创建自己的控制器池。当您需要将控制器放入单元格内时(在cellforIndexPath方法中),从池中取一个。如果池为空,请创建一个新池。单元格不应该带有它自己的控制器,只能将它放在cellForItemMethod中。