0

我正在尝试重新创建类似于在 iPhone 上的联系人编辑中添加/编辑电话号码或电子邮件的功能。我总是有一个空行,其中包含可用的占位符文本。在编辑模式下(按下工具栏上的按钮)我取消隐藏 UITextField。在“编辑更改”回调中,我在该部分中插入了一个新行,再次类似于 iPhone 联系人编辑视图。但是,当我开始修改第 2 行(按预期插入第 3 行)时插入后,第 1 行文本字段的值被清除为占位符值。
我在某处读到我需要将文本字段值存储在第 1 行中,在第 2 行插入时以及在结束编辑时(我假设),否则它会丢失?这对我来说似乎很奇怪,我想知道这是否是唯一的方法?我什么时候回去恢复它?当我插入新行并修改之前所有行中最后一行的值被清除时,这当然会不断重复。谁能指出一个类似于联系人编辑功能的示例?如果我通过让最后一行始终是“+ Add Value”行来改变插入行的方式,那会有帮助吗?我不这么认为。另外,如果我可以将第一行的样式从 UITableViewCellEditingStyleNone 更改为 UITableViewCellEditingStyleDelete,那就太好了,但无论我尝试什么,包括在中间切换编辑 NO/YES 设置所有可见行以对忽略转换做出反应,我都无法让它工作,除了最后一行之外的所有内容都带有 UITableViewCellEditingStyleDelete。所以我认为可以让我无法删除初始行(不是我想要的,但我可以忍受)。

4

2 回答 2

0

为什么要在你的情况下重复使用?如果所有行始终都在屏幕上,只需为每个行创建一个新的 UITableViewCell。

UITableViewCell *cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil] autorelease];

配置内容继续它...

[cell.contentView addSubview:WHATEVER_YOU_CREATED];
[cell.contentView sizeToFit];
return cell;

重用单元格对于那些有很多行的人来说是一种重用不再可见的行以节省资源的方法。

于 2013-02-11T16:58:22.667 回答
0

请确认,但我猜测从进一步阅读中将行滚动出视图会导致相同的问题,因此在我的情况下,textFieldDidEndEditing 以及可能在每个插入上都需要处理以将“新”数据存储在相应的每行的数据存储数组的条目。但是,在没有滚动的情况下,我可能需要执行以下操作: - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimat.... 对于正在修改的部分中的所有行以及可能所有可见行。确认非常感谢。

于 2013-02-11T15:44:44.437 回答