2013-07-24 43 views
2

我有一個奇怪的情況,在某些情況下,我想禁用單元格中的單元格可重用「特性」。如果遇到一些情況,我不會'不想重複使用那個單元。在某些情況下禁用重用單元格

,這是什麼美麗的方法是什麼?(我知道reuseIdentifier的目的,但我有一些奇怪的依賴性,因此,沒有我在這個小區要成爲無重複使用。)

我不能修改重用標識符,因爲它是隻讀屬性。 我可以覆蓋getter「 - (NSString *)reuseIdentifier」,但我不喜歡這個想法。

對此問題有其他建議嗎?

+6

如果您需要停止重複使用單元格,那麼您的設計有問題。您可以通過適當的設計實現同樣的目標。 – Anupdas

+0

感謝您的回答,我知道我的設計不好,但現在我沒有其他選擇。 – flatronka

回答

8

如果您需要避免重複使用單元格,那麼您的代碼或設計會出現問題:重用單元格的機制非常靈活,您應該可以根據需要進行調整。

但是,您需要的效果相對容易實現:如果dequeueReusableCellWithIdentifier:返回您不想重用的單元格,請不要從tableView:cellForRowAtIndexPath:方法返回該單元格。在其位置創建一個新的單元,或者使另一個單元出列。

+0

我相信如果一個單元的內容被重用,它就會丟失一個單元的內容。雖然你仍然認爲這聽起來像是糟糕的設計,但你的方法並不能避免這個問題。相反,應該在出隊之前檢查條件並創建新的單元格(通過alloc-init,使用不同的重用標識符)或出列(使用不同的重用標識符)。 –

+1

@ patric.schenke我沒有足夠的關於OP問題細節的信息,但是我認爲不重新使用單元的決定不能在沒有查看單元的情況下做出。如果'tableView:cellForRowAtIndexPath'方法有足夠的信息來決定這個出隊單元之前,它肯定可以做到這一點。 – dasblinkenlight

相關問題