使用UITextField的UITableView - 即使在用户滚动后也能保留数据

问题描述 投票:4回答:2

我有一个UITableView,它有很多UITableViewCells - 这些UITableViewCells里面有多个UITextFields。

现在,每次我上下滚动 - 并且UITableViewCells走出视图 - 然后返回我在UITextField内输入的任何文本消失 - 这是什么工作的最佳方法?

iphone cocoa-touch uitableview uitextfield
2个回答
12
投票

创建一个NSMutableArray,在每个位置,持有一个匹配每个单元格的NSString对象。

当您在- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath中配置+显示每个单元格时,将UITextField的文本设置为位于indexPath.row位置的数组中的字符串。

编辑UITextField时,在数组中当前的NSString位置插入/更新indexPath.row对象


1
投票

如果你在UITextField中添加UITableViewCell,你需要注意细胞的状态,因为细胞在滚动时得到dequeued

你需要保持一个Dictionary来保留UITextField中的文本,这个文本存在于UITableViewCell中。

请参阅我的github repo,了解在uitableviewcell中具有UITextField / UIButton状态的完整解决方案。

代码是在Swift 4中使用XCode 9.4创建的

© www.soinside.com 2019 - 2024. All rights reserved.