将标记分配给单元格中的UITextField时出现问题

时间:2014-07-11 15:16:40

标签: ios objective-c uitableview uitextfield

cellForRowAtIndexPath我执行以下操作:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
UITextField *texfield = (UITextField *)[cell viewWithTag:1];

if (indexPath.section < [self.SmsDataArray count]) {
    SmsModel * smsObj = self.SmsDataArray[indexPath.section];
    texfield.text  = smsObj.phoneNumber;
}
texfield.tag = 10000;
return cell;

如果我更改标签,则无法填充文本字段。

如果我评论texfield.tag = 10000;文本字段按预期填充,我需要在此处修复什么?

基本上我需要将标签分配给文本字段,因为单元格是动态的。

2 个答案:

答案 0 :(得分:0)

问题 - 您正在覆盖textfield标记。第一个调用标记更改为10000。

但是这个方法再次被调用同一个单元格,它搜索具有标记1的文本字段。但是没有这样的文本字段。

解决方案 - 使用此行的任何替代

(UITextField *)[cell viewWithTag:1];

这个

  1. 您可以使用自定义单元格并访问文本字段为“cell.textfield”
  2. 或者在cellForRowAtIndex()中制作自定义文本字段。并将其标记设置为indexpath.row

答案 1 :(得分:0)

如果您没有使用标准单元格,那么您应该将UITableViewCell子类化,并创建一个属性以指向您的文本字段,这样您就不需要使用–viewWithTag:来获取指向它的指针。然后,在–tableView:cellForRowAtIndexPath:中,您可以根据tag分配indexPath.row