2014-01-24 75 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