gpt4 book ai didi

ios - dequeueReusableCellWithIdentifier 的解决方法

转载 作者:行者123 更新时间:2023-11-28 22:20:13 24 4
gpt4 key购买 nike

我有一个最初加载一个自定义单元格的 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];

最佳答案

您不应将单元格存储在数组中。您应该将单元格的支持数据存储到一个数组(或您认为合适的任何其他存储)中,并使用数组中的数据更新您的出列单元格。

例如,如果用户添加“Test”,您会将其添加到数组中索引 0 处。现在用户添加“Demo”,您将其添加到数组中索引 1 处。现在用户添加的字符串越来越多,你把它们全部添加到数组中。一旦用户滚动到顶部,并要求您为第 0 行第 1 行提供一个单元格,您将出列一个单元格 - 任何单元格 - 并根据索引 1 处数组的值设置它的标签。对于单元格来说也是明智的在第 0 节索引 0 - 数组将返回“测试”。

关于ios - dequeueReusableCellWithIdentifier 的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20622698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com