【问题标题】:Multiple rows insert auto insert in edit mode with UITextFields, similar to contacts phone/email多行插入在编辑模式下使用 UITextFields 自动插入,类似于联系人电话/电子邮件
【发布时间】:2013-02-11 05:16:31
【问题描述】:

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

【问题讨论】:

    标签: iphone contacts edit custom-cell multirow


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      配置内容就可以了...

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

      重用单元格是一种让那些有很多行的人可以重用不再可见的单元格以节省资源的一种方式。

      【讨论】:

      • MyProfilePropertyCell *cell = [[MyProfilePropertyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MyCellFromStoryboardId"];这会产生一个空行,没有故事板中定义的自定义标签。我究竟做错了什么?尽管我想得越多,我就越认为这在我的情况下不是问题,正如原始问题中所描述的那样,因为我还没有滚动并且不应该有任何重用。但是你是对的,如果我可以让我的自定义单元格正确显示,我不需要使用单元格的重用。
      • 我想这是因为在我的 initWithStyle 自定义实现中,我必须初始化所有控件,而在使用 dequeueReusableCellWithIdentifier 时,它是由框架为我完成的?有其他选择吗?
      • reuseIdentifier 就是这样,与storyboard id无关。
      猜你喜欢
      • 1970-01-01
      • 2017-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      • 2020-10-01
      • 2011-10-09
      • 1970-01-01
      相关资源
      最近更新 更多