如何在轻敲的行下方插入自定义行

时间:2011-07-19 03:57:55

标签: iphone objective-c uitableview

我正在开发一个项目,其中有一个要求,在表格视图中,当我点击一行时,应该在该行下面添加一行,并且我希望该行被自定义,因为我想添加文本视图在那一行。 请告诉我怎么做这个。 任何建议都将受到高度赞赏。

我目前的代码: -

- (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;

}

1 个答案:

答案 0 :(得分:1)

查看WWDC 2011开发人员视频中的UITableView更改和提示 - 在那里他们描述了如何做到这一点。遗憾的是,我没有找到任何示例代码,但他们在谈话中很好地记录了这种方法。