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