当用户滚动 uitableview 时,UITableViewCell 中的文本会被删除
Posted
技术标签:
【中文标题】当用户滚动 uitableview 时,UITableViewCell 中的文本会被删除【英文标题】:text in UITableViewCell get remove when user scroll uitableview 【发布时间】:2017-05-19 06:14:52 【问题描述】:我正在从事的项目有很多表格(如注册表单),大约有 20-25 个表格,每个表格有 8-9 个输入框,即文本字段。
1) 我创建了自定义 UITableViewCell 2)我在索引处为行单元格我写在下面的代码:
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
if(indexPath.row==0)
NSString *simpleTableIdentifier = @"cell";
customcell *cell = (DropdownCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:customcell owner:self options:nil];
cell = [nib objectAtIndex:0];
cell.Txtlist.placeholder = @"Select type of meeting";
self.txtType1 = cell.Txtlist; // i had created the local variable uitextfield.So that i can access that locally in my application.
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
else if(indexPath.row == 1)
NSString *simpleTableIdentifier = cell;
customcell *cell = (customcell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil)
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:customcell owner:self options:nil];
cell = [nib objectAtIndex:0];
cell.Txtlist.placeholder = @"Select Client Name";
self.txtType2 = cell.Txtlist; // i had created the local variable uitextfield.So that i can access that locally in my application.
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
3)UI 是正确的。 但问题是当我在行 = 0 的文本字段中写一些文本并滚动 uitableview 时。文本字段的值被删除。
我该如何解决这个问题。 请帮忙。 如果有更好的方法来实现表单,也请帮助我。
谢谢
【问题讨论】:
【参考方案1】:根据我的理解,您在单页上使用 4-5 个文本字段,那么您必须将这些值存储在数组或字典中的某个位置,以便每当为该特定填充数据单元格调用 cellForRowAtIndex 时,该单元格将使用该值数组或字典以显示以前填充的数据。 或“只需存储值”。
【讨论】:
【参考方案2】:您没有正确地重用表格视图单元格。 阅读documentation 一次。
【讨论】:
感谢您的快速回复。你能帮我指出确切的错误吗?【参考方案3】:初始化一个全局 NSMutableDictionary 对象。
// 在标题中 NSMutableDictionary *values;
用户
// 在 view-did-load 方法中 values = [NSMutableDictionary 字典];
// 为给定设置文本值 [值 setValue:@"" forKey:@(0)]; // 你的行索引 0 [值 setValue:@"" forKey:@(1)]; // 索引 1
设置TextField Delegate & tag,同时设置存储文本。
cell.Txtlist.delegate = self; cell.Txtlist.tag = indexPath.row; NSString *value = values[@(indexPath.row)]; cell.Txtlist.text = value;
实现 TextField 方法,
(void)textFieldDidEndEditing:(UITextField *)textField [values setValue:textField.text forKey:@(textField.tag)];享受...继续努力。
【讨论】:
以上是关于当用户滚动 uitableview 时,UITableViewCell 中的文本会被删除的主要内容,如果未能解决你的问题,请参考以下文章
编辑第一个 UITextField 时,如何将 UITableView 滚动到第二个 UITextField?
当用户滚动 uitableview 时,UITableViewCell 中的文本会被删除
UITableView 滚动 UINavigationBar