UITableViewCell - 不要删除和回收

时间:2014-06-05 18:29:11

标签: ios objective-c cocoa-touch uitableview

我有一个带有一些单元格的UITableView,包含一些UITextField。 它是一些非常小的细胞,它们确实消耗了大量的内存。

我的问题是,滚动时,由于内存原因,单元格将被取消设置,这很好 - 如果你有一个巨大的UITableView。

我的UITableView最多只有10-15个单元格,如上所述,它包含一些文本字段。这些文本字段由用户自己编写。但是当用户滚动时,值会消失,因为单元格未设置。

我可以创建一个NSMutableDictionary来存储数据,但这对于这个小工作来说会有点过分。你有一个很好的黑客来解决这个问题,所以滚动时值不会消失吗?

3 个答案:

答案 0 :(得分:1)

无论如何,您需要将信息存储在单元格之外,最好是存储在控制器或其他结构中的NSArray中。另一种方法是通过为每个单元格提供不同的标识符或者预先创建它们,保存在数组中并返回它们而不是出列来禁用回收,但我不推荐它。

答案 1 :(得分:1)

以正确的方式行事。使用NSMutableArray作为主数据存储(每行一个元素),并在每个有效元素中放置自定义对象或NSMutableDictionary。以统一的方式做到这一点要简单得多,而不是试图兼顾一堆不同的价值观。

答案 2 :(得分:-1)

您可以将单元格存储在一个数组中,以便在滚动屏幕时不会释放它们。

通过将单元格添加到数组中,它们的引用计数将增加1.