【发布时间】:2013-12-16 22:59:23
【问题描述】:
我有一个最初加载一个自定义单元格的 tableView。该单元格有一个文本字段和一个用户可以修改的段控件。还有一个添加单元格按钮,如果按下该按钮,则会在前一个下方添加另一个自定义单元格。用户最多可以添加 15 个这些自定义单元格。当最初的几个单元格最终离开屏幕并创建新的单元格时,它们只是在创建与 index.row 位置 0、1、2 等完全相同的单元格。
例如: 用户在 index.row 位置 0 的自定义单元格的文本字段中输入“Test”。现在,当该单元格离开屏幕并且用户添加一个新单元格时,它只是添加具有“Test”的 textfield.text 值的原始单元格“ 和所有。如果我将新单元格的 textfield.text 值修改为“Demo”,它会将 index.row 位置 0 处的文本字段更改为该值。
现在我知道这就是 dequeueReusableCell 的工作原理。它抓取屏幕外的单元格。但是我该如何解决这个问题。并让它每次都创建一个唯一的单元格。
*编辑 这就是我插入新单元格的方式。
/* create cell and add to array */
NSString *CellIdentifier1 = @"cell";
CustomCell *customCell = (CustomCell*)[self.myTableView dequeueReusableCellWithIdentifier:CellIdentifier1];
/* save cell to array */
[self.fetchCellArray addObject:customCell];
/* Add cell in table */
NSIndexPath *indexPath2 = [NSIndexPath indexPathForRow:deleteInsertIndex inSection:0];
[self.myTableView insertRowsAtIndexPaths:@[indexPath2] withRowAnimation:UITableViewRowAnimationAutomatic];
【问题讨论】:
-
为什么需要创建一个唯一的单元格?当您向上滚动时,您将再次出列单元格并将正确的文本放入其中。
-
您将数据存储在哪里?将它存储在一个数组中,然后当你出列一个单元格时,只需从数组中获取字符串并将单元格的标签设置为该字符串。
标签: ios xcode uitableview