IOS Swift 如何停止在表格视图中拖动或滚动时重新创建单元格

IOS Swift how can stop re-creating cells on drag or scroling in tableview

我正在使用带文本字段的自定义单元格创建一个表格视图。当我在 tableviewcell 文本字段中输入文本时,当我滚动 tableview 时,数据正在改变。手段重绘细胞。我如何停止在拖动或滚动时重新加载单元格 IOS 8 swift 谢谢

你的情况。您需要自定义键盘。 在键盘顶部添加 [Prev][Next] 按钮,避免滚动。

基本上这个想法在基于表单的应用程序中很有用。可能是你做的那种。

是的,停止重新加载单元格对应用程序不利。如果你会实现这个。 Apple 不会批准您的应用程序。所以避免这种东西。

这就是单元格在 UITableView 中的工作方式。 cellForRowAtIndexPath: 方法的标准实现使单元格出队并重新使用它们。

理想情况下,您的应用程序应保存文本字段中的文本,并根据相同方法实现中的索引路径更改单元格中的正确文本。

如果您不想这样做, 解决方法是每次在 cellForRowAtIndexPath: 方法中创建一个新单元格,而不是将行出队。*

*除非绝对必要,否则不要这样做。这是非常糟糕的编码习惯

如果您不希望您的单元格被重复使用,请尝试使其成为具有唯一标识符的 UITableViewCell 的子class,并且不要将标识符与其他单元格一起使用。我还没有测试它,希望它能解决你的问题。

Ps。如果文本字段的文本仍然被覆盖,请检查单元格的 class 文件(就像使用 if-else 语句检查文本字段的文本是否为空)。

详细工作流程: 在 cellForRowAtIndexPath() 中,在单元格出队后,通常您会设置自定义单元格的一些 属性 以刷新它保存的数据。要实现这一点,您需要在单元格的 class 文件中的 属性 上添加一个 didSet 观察器。为了达到你想要的目的,你也可以在didSet观察者中添加检查代码。