UITableViewCellStyleValue2编辑文本 - 填写表格如

时间:2011-07-08 20:37:14

标签: uitableview edit

我需要创建一个表单,以便用户可以编辑表格的所有单元格(大约20个)。

我可以使用UITableViewCellStyleValue2吗?如果是这样,怎么样?

或者我是否需要创建UITableViewCell的子类?

就arquitect而言,也许最好创建一个子类,但无论如何,我需要编辑表格textlabel.text属性。

最好的方法是什么?我怎么能这样做?

谢谢,

RL

1 个答案:

答案 0 :(得分:0)

我建议您将自己的视图添加到单元格的contentView中,如下所示:

- (UITableViewCell *)tableView:(UITableView *)tv
    cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
    UITableViewCell *cell;
    {
        NSAutoreleasePool *arp = [[NSAutoreleasePool alloc] init];

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                reuseIdentifier:nil];
        cell.selectionStyle = UITableViewCellSelectionStyleNone;
        cell.backgroundColor = [UIColor whiteColor];

        UILabel *lbl = [[UILabel alloc] init];
        lbl.frame = CGRectMake(3, 2, 160, tv.rowHeight - 4);
        lbl.backgroundColor = [UIColor clearColor];
        lbl.textColor = [UIColor blackColor];
        lbl.font = [UIFont boldSystemFontOfSize:16];
        [cell.contentView addSubview:lbl];
        [lbl release];

        if(indexPath.row == 0)
        {
            lbl.text = @"Cell Name";

            UITextField *textField;
            textField = [[UITextField alloc] initWithFrame:CGRectMake(170,
                        tv.rowHeight / 2 - 10, 100, 20)];
            textField.borderStyle = UITextBorderStyleNone;
            textField.textColor = [UIColor blackColor];
            textField.font = [UIFont systemFontOfSize:14];
            textField.placeholder = @"Placeholder";
            textField.backgroundColor = [UIColor clearColor];
            textField.autocorrectionType = UITextAutocorrectionTypeNo;
            textField.keyboardType = UIKeyboardTypeDefault;
            textField.returnKeyType = UIReturnKeyDone;
            textField.tag = indexPath.row;
            textField.delegate = self;

            [cell.contentView addSubview:textField];
            [textField release];
        }

        ...

        [arp drain];
    }

    return [cell autorelease];
}

这只是一个演示,但你可以看到你需要扩展它以支持其他单元格等。