【问题标题】:UITableView with UITextField - keep the data even after user scrolls带有 UITextField 的 UITableView - 即使在用户滚动后也保留数据
【发布时间】:2011-05-31 06:44:12
【问题描述】:

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

现在,每次我向上和向下滚动时 - UITableViewCells 离开视图 - 并且我在 UITextField 中输入的任何文本都消失了 - 使这项工作的最佳方法是什么?

【问题讨论】:

    标签: iphone cocoa-touch uitableview uitextfield


    【解决方案1】:

    创建一个NSMutableArray,它在每个位置都包含一个与每个单元格匹配的NSString 对象。

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

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

    【讨论】:

    • 你是救生员!!谢谢!!
    • 只是为了详细说明这个答案 - 在编辑 UITextField 时,请使用 UITextFieldDelegate 方法 - (void)textFieldDidEndEditing:(UITextField *)textField 在编辑字段时保存更改,并确保它如果单元格被滚动出视图,则保存,使用 scrollview 委托方法(可以在 tableview 控制器中使用) - (void) scrollViewWillBeginDragging:(UIScrollView *)scrollView { [self.view endEditing:TRUE];} 到确保在单元格滚动出视图之前调用文本字段委托方法。
    【解决方案2】:

    如果您在UITableViewCell 中添加UITextField,您需要注意单元格的状态,因为滚动时单元格会获得dequeued

    您需要维护Dictionary 以保留UITextField 中的文本,该文本存在于UITableViewCell 中。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 2016-12-11
      • 2012-01-06
      • 2011-09-23
      相关资源
      最近更新 更多