我正在开发一个项目,其中有一个要求,在表格视图中,当我点击一行时,应该在该行下面添加一行,并且我希望该行被自定义,因为我想添加文本视图在那一行。 请告诉我怎么做这个。 任何建议都将受到高度赞赏。
我目前的代码: -
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];`
if (cell == nil) {
cell = [self reuseTableViewCellWithIdentifier:CellIdentifier withIndexPath:indexPath];
}
UIImageView *imgViewBackground=(UIImageView *)[cell.contentView viewWithTag:20];
UIImageView *imgView=(UIImageView *)[cell.contentView viewWithTag:21];
UILabel *label1=(UILabel *)[cell.contentView viewWithTag:22];
UILabel *label2=(UILabel *)[cell.contentView viewWithTag:23];
UILabel *label3=(UILabel *)[cell.contentView viewWithTag:24];
[imgViewBackground setImage:[UIImage imageNamed:@"bba3.png"]
[imgView setImage:[UIImage imageNamed:@"picdefault.png"]];
[label1 setText:[self.usernameArray objectAtIndex:indexPath.row]];
[label2 setText:[NSString stringWithFormat:@"%@",[self.level1Array objectAtIndex:indexPath.row]]];
[label3 setText:[self.ageArray objectAtIndex:indexPath.row]]];
cell.selectionStyle = UITableViewCellSelectionStyleNone;//to remove blu selection color
return cell;
}
-(UITableViewCell *)reuseTableViewCellWithIdentifier:(NSString *)identifier withIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell =[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]autorelease];
if ([identifier isEqualToString:@"Cell"]) {
UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(10, 0, 300, 98)];
imageView.tag=20;
[imageView setImage:[UIImage imageNamed:@"bba2.png"]];
[cell.contentView addSubview:imageView];
[imageView release];
UIImageView *imagePicView=[[UIImageView alloc]initWithFrame:CGRectMake(25, 20, 60, 60)];
imagePicView.tag=21;
[cell.contentView addSubview:imagePicView];
[imagePicView release];
UILabel *namelabel=[[UILabel alloc]initWithFrame:CGRectMake(90, 20, 200, 20)];
namelabel.backgroundColor=[UIColor clearColor];
namelabel.font=[UIFont systemFontOfSize:15];
namelabel.tag=22;
[namelabel setTextAlignment:UITextAlignmentLeft];
[namelabel setTextColor:[UIColor blackColor]];
[cell.contentView addSubview:namelabel];
[namelabel release];
UILabel *activitylabel=[[UILabel alloc]initWithFrame:CGRectMake(90, 40, 200, 20)];
activitylabel.backgroundColor=[UIColor clearColor];
activitylabel.font=[UIFont italicSystemFontOfSize:14];
activitylabel.tag=23;
[activitylabel setTextAlignment:UITextAlignmentLeft];
[activitylabel setTextColor:[UIColor darkGrayColor]];
[cell.contentView addSubview:activitylabel];
[activitylabel release];
UILabel *agelabel=[[UILabel alloc]initWithFrame:CGRectMake(90, 60, 200, 20)];
agelabel.backgroundColor=[UIColor clearColor];
agelabel.font=[UIFont systemFontOfSize:13];
agelabel.tag=24;
[agelabel setTextAlignment:UITextAlignmentLeft];
[agelabel setTextColor:[UIColor darkGrayColor]];
[cell.contentView addSubview:agelabel];
[agelabel release];
}
return cell;
}
答案 0 :(得分:1)
查看WWDC 2011开发人员视频中的UITableView更改和提示 - 在那里他们描述了如何做到这一点。遗憾的是,我没有找到任何示例代码,但他们在谈话中很好地记录了这种方法。