2014-01-24 33 views
0

我有样本集合视图。我通过dequeueReusableCellWithReuseIdentifier:forIndexPath: 从它中取出单元当ViewController加载时,OS将其中的5个单元出队并加载信息。 当我滚动时,另外5-7个单元出列并加载信息。 第二组已加载的单元格将在第一组加载单元格中的信息前进,并且其中的信息在不到半秒之后会用新鲜(右)单元格更新。iOS集合视图单元更新正在推迟

我对单元格使用了prepareForReuse,在这里我重置了所有单元组件的可见性并重新载入了新信息,但结果并非我所期望的,这正是我上面所描述的。

有什么建议吗? 谢谢。

编辑:好吧,如果我用dequeueReusableCellWithReuseIdentifier:forIndexPath:的数据更新单元格视图,所有工作正常,但如果我将数据传递给单元格并要求单元格修改自己 - 比我上面指出的问题。

编辑2:Soved。如我所想 - 这是一个愚蠢的错误。作为其他人的建议 - 确保在任何情况下都将数据传递给单元格。

+0

你为什么不更新'cellForItemAtIndexPath:'中的东西? – Krumelur

+0

我正在使用cellForItemAtIndexPath:来使单元出列并设置所需的信息。你的意思是我需要执行当前在prepareForReuse之内的逻辑从cellForItemAtIndexPath:然后设置需要的信息? – bel

+0

这就是我的意思。沟'prepareForReuse'并将代码移动到'cellForItemAtIndexPath'。 – Krumelur

回答

0

你在cellForItemAtIndexPath中有ALLOC语句吗?或者如果使用子类,你在子类实现中是否有ALLOC?可能你看到的UI元素没有被清除。

+0

不,这里是cell init'MyCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:myIde forIndexPath:indexPath]; ' – bel

+0

单元格视图位于.xib文件中,我对它们的IBOutlets很弱。 – bel