我有四个部分第一截面的tableview具有这样前六行7列具有文本字段和最后一行具有两个文本框泰伯维[cell.contentview viewwithtag:]被返回nil
第一节
T1
T1
T1
T1
T1
T1
T1 T2
部2
T1 T2
T1 T2 //第二行文本框被放置在第四行
T1 T2
T1 T2 //第四行文本框被放置在某些其它行
T1 T2
T1 T2
T1 T2
部3
T1 T2
T1 T2
T1 T2
T1 T2
T1 T2
T1 T2
T1 T2
部4
T1
T1
T1
T1
T1
t1
T1
T1
二&第三部分包含有两个文本框的每个
第四节已经包含各行中的一个文本框八行我安排一个独特的标签,所有的文本框七行
在textFieldDidEndEditing我将内容保存到适当的索引中的数组。
如果我在滚动文本字段中输入数据后的tableview。一些文本字段位置被改变(即)第二行中的文本字段被放置在第三行中,类似地一些行被交换。
我已创建5个小区标识符一个用于在段中的一个前六行,第二个用于在所述第一部分中的最后一行,并为剩余的其他部分3的小区标识符。
当我滚动有时cell.contentview viewWithtag返回标签
零价值,我认为这是在某些行文本框错误的原因。
如何纠正这个问题?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *identifier;<bn>
UITableViewCellStyle style = UITableViewCellStyleDefault;<br>
BOOL selectable = NO;<br>
switch (indexPath.section)
{
case 0:
{
if(indexPath.row < 6)
identifier = @"firstsectionSixRows";
else
identifier = @"firstsectionLastRow";
break;
}
case 1:
identifier = @"secondsection";
break;
case 2:
identifier = @"thirdsection";
break;
case 3:
identifier = @"fourthsection";
break;
}
return [self createCellForIdentifier:identifier
tableView:tableView
indexPath:indexPath
style:style
selectable:selectable];
}
在createCellForIdentifier方法
else if([identifier isEqualToString:@"secondsection"])
{
int TextTag = 8 + indexPath.row * 2;
UILabel *lblName = (UILabel*)[cell.contentView viewWithTag:10000];
lblName.text = [NSString stringWithFormat:@"G%d",indexPath.row + 1];
//NSLog(@"row = %d texttag = %d",indexPath.row,TextTag);
UITextField *txtFirst = (UITextField*) [cell.contentView viewWithTag:TextTag];
if([textFieldArray count] > 0)
{
if(![[textFieldArray objectAtIndex:TextTag] isEqualToString:@""])
{
if(txtFirst)
txtFirst.text = [NSString stringWithFormat:@"%@",[textFieldArray objectAtIndex:TextTag]];
else
NSLog(@"Textfield is nil \n tag = %d \n cell section = %d row = %d",TextTag,indexPath.section,indexPath.row);
}
}
UITextField *txtSecond = (UITextField*) [cell.contentView viewWithTag:TextTag + 1];
if([textFieldArray count] > 0)
{
if(![[textFieldArray objectAtIndex:TextTag + 1] isEqualToString:@""])
{
if(txtSecond)
txtSecond.text = [NSString stringWithFormat:@"%@",[textFieldArray objectAtIndex:TextTag + 1]];
else
NSLog(@"Textfield is nil \n tag = %d \n cell section = %d row = %d",TextTag + 1,indexPath.section,indexPath.row);
}
}
}
发布您的代码。 – 2010-10-29 15:51:54