当用户滚动uitableview时,UITableViewCell中的文本将被删除

时间:2017-05-19 06:14:53

标签: objective-c uitableview uiscrollview uitextfield reuseidentifier

我正在开发的项目有很多表格(如报名表格),大约有20-25个表格,每个表格都有8-9个输入框,即文本字段。

1)我创建了自定义UITableViewCell 2)我在索引i的行的单元格写下代码:

-(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)用户界面是正确的。 但问题是当我在text = row = 0中写一些文本并滚动uitableview时。 textfield的值被删除。

我该如何解决这个问题。 请帮忙。 如果有更好的方法来实现表单,也可以帮助我。

谢谢

3 个答案:

答案 0 :(得分:1)

根据我的理解,您在单页上使用4-5文本字段,那么您必须将这些值存储在数组或字典中的某处,以便每当为该特定填充数据单元调用cellForRowAtIndex时,此单元格将使用该数组或字典显示以前填充的数据。 或者“只需要存储值”。

答案 1 :(得分:0)

您没有正确地重复使用表格视图单元格。 阅读documentation一次。

答案 2 :(得分:0)

  1. 初始化全局NSMutableDictionary对象。

    //在标题中 NSMutableDictionary *值;

  2. 字典的用户价值特征。

    //在view-did-load方法中 values = [NSMutableDictionary dictionary];

    //设置给定的文本值 [values setValue:@“”forKey:@(0)]; //你的行索引0 [values setValue:@“”forKey:@(1)]; // index 1

  3. 设置TextField Delegate&标签,也设置存储的文本。

    cell.Txtlist.delegate = self; cell.Txtlist.tag = indexPath.row; NSString * value = values [@(indexPath.row)]; cell.Txtlist.text = value;

  4. 实现TextField方法,

    • (void)textFieldDidEndEditing:(UITextField *)textField { [values setValue:textField.text forKey:@(textField.tag)]; }
  5. ...享受