2013-07-24 50 views
2

我有一个奇怪的情况,在某些情况下,我想禁用单元格中的单元格可重用“特性”。如果遇到一些情况,我不会'不想重复使用那个单元。在某些情况下禁用重用单元格

,这是什么美丽的方法是什么?(我知道reuseIdentifier的目的,但我有一些奇怪的依赖性,因此,没有我在这个小区要成为无重复使用。)

我不能修改重用标识符,因为它是只读属性。 我可以覆盖getter“ - (NSString *)reuseIdentifier”,但我不喜欢这个想法。

对此问题有其他建议吗?

+6

如果您需要停止重复使用单元格,那么您的设计有问题。您可以通过适当的设计实现同样的目标。 – Anupdas

+0

感谢您的回答,我知道我的设计不好,但现在我没有其他选择。 – flatronka

回答

8

如果您需要避免重复使用单元格,那么您的代码或设计会出现问题:重用单元格的机制非常灵活,您应该可以根据需要进行调整。

但是,您需要的效果相对容易实现:如果dequeueReusableCellWithIdentifier:返回您不想重用的单元格,请不要从tableView:cellForRowAtIndexPath:方法返回该单元格。在其位置创建一个新的单元,或者使另一个单元出列。

+0

我相信如果一个单元的内容被重用,它就会丢失一个单元的内容。虽然你仍然认为这听起来像是糟糕的设计,但你的方法并不能避免这个问题。相反,应该在出队之前检查条件并创建新的单元格(通过alloc-init,使用不同的重用标识符)或出列(使用不同的重用标识符)。 –

+1

@ patric.schenke我没有足够的关于OP问题细节的信息,但是我认为不重新使用单元的决定不能在没有查看单元的情况下做出。如果'tableView:cellForRowAtIndexPath'方法有足够的信息来决定这个出队单元之前,它肯定可以做到这一点。 – dasblinkenlight

相关问题