我有一个UITableView
足够高的,它需要滚动。表中最顶部的单元格包含一个UITextField
供用户输入一些文本的单元格。
构建它的标准方法可能是创建和添加文本字段并将其添加到在中创建或回收的单元格中。cellFOrRowAtIndexPath:
但是,这种不断的重新创建意味着当单元格向外和向后滚动时,在字段中输入的文本将被删除进入视野。
到目前为止,我发现的解决方案建议使用UITextField
委托来跟踪文本的变化并将其存储在 iVar 或属性中。我想知道为什么建议这样做而不是我使用的更简单的方法:
我正在UITextField
init 的 init 方法中创建UITableViewController
并立即将其存储在属性中。在cellFOrROwAtIndexPath
我只是添加预先存在的字段而不是初始化一个新字段。单元格本身可以毫无问题地回收,但因为我总是使用唯一UITextField
的,所以内容得以保留。
这是一个合理的方法吗?可能会出什么问题?任何改进(也许我仍然可以在其中创建字段,cellForRowAtIndexPath
但首先检查属性是否为零?)