你好朋友我已经创建了自定义表并为表添加了所有需要的委托和数据源然后这很好用但是当我们滚动我的表时内容更改就像这样是代码......
Table_worklist=[[UITableView alloc]initWithFrame:CGRectMake(10,480,750,130)style:UITableViewStylePlain];
Table_worklist.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
Table_worklist.delegate=self;
Table_worklist.dataSource=self;
Table_worklist.layer.borderWidth = 2.0;
Table_worklist.layer.borderColor = [UIColor grayColor].CGColor;
[ScrollView addSubview:Table_worklist];
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell== nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] ;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
UITextField *resultval=[[UITextField alloc]initWithFrame:CGRectMake(510,10,120,30)];
resultval.tag=1;
resultval.font = [UIFont boldSystemFontOfSize:12.0];
//the horizontal alignment of the text
resultval.textAlignment = NSTextAlignmentCenter;
resultval.contentVerticalAlignment = UIControlContentHorizontalAlignmentCenter;
resultval.clearButtonMode = UITextFieldViewModeWhileEditing; // has a clear 'x' button to the right
resultval.delegate =self;
if([[NSString stringWithFormat:@"%@",[[TestSample objectAtIndex:indexPath.row]valueForKey:@"ResultType"]]isEqualToString:@"Numerical"])
{
imageLayer = field.layer;
[imageLayer setCornerRadius:02];
[imageLayer setBorderWidth:1];
imageLayer.borderColor=[[UIColor lightGrayColor]CGColor];
}
else if([[NSString stringWithFormat:@"%@",[[TestSample objectAtIndex:indexPath.row]valueForKey:@"ResultType"]]isEqualToString:@"Words"]||[[NSString stringWithFormat:@"%@",[[TestSample objectAtIndex:indexPath.row]valueForKey:@"ResultType"]]isEqualToString:@"Comment"])
{
imageLayer = field.layer;
[imageLayer setCornerRadius:06];
[imageLayer setBorderWidth:1];
imageLayer.borderColor=[[UIColor blackColor]CGColor];
UIButton *CheckMark=[[UIButton alloc]initWithFrame:CGRectMake(540,10,30,30)];
CheckMark.tag=1;
[CheckMark setImage:[UIImage imageNamed:@"DownTriangle1"]forState:UIControlStateNormal];
imageLayer = CheckMark.layer;
[imageLayer setCornerRadius:02];
[imageLayer setBorderWidth:1];
imageLayer.borderColor=[[UIColor blackColor] CGColor];
[cell.contentView addSubview:CheckMark];
}
[cell.contentView addSubview:resultval];
}
return cell;
}
这显示了前 3 或 4 个单元格的正确数据(因为表格高度 130,所以一次只显示 3 个单元格)对于这 3 个单元格,我的表格显示正确的数据...例如
if([[NSString stringWithFormat:@"%@",[[TestSample objectAtIndex:indexPath.row]valueForKey:@"ResultType"]]isEqualToString:@"Numerical"])
{ }
然后数据是数字的,如果条件其他条件,则转到其他条件……但是当我们有更多单元格时,例如 7-8 单元格,那么当我们滚动这些单元格时,假设在单元格 4 发生了什么,我的控制器转到其他位置if 条件 forComment 和 word data ......所以最后一个单元格 -8 得到了数字数据,所以控制器进入 if 条件,但是在 if else 条件下创建的复选标记按钮显示在我的 if 条件数据上.. ....所以我不知道当我们滚动如何更改我的条件时发生了什么......实际上,我上次在单元格 4 上创建 else if 条件(创建 uibutton 复选标记)时发生了什么,这些条件适用于单元格-8 ...........但是控制器在单元格 8 的 if 条件下进入正确的位置......但是上次创建了在单元格 8 上生成的复选标记按钮......如何解决这个问题....