我需要创建一个表单,以便用户可以编辑表格的所有单元格(大约20个)。
我可以使用UITableViewCellStyleValue2吗?如果是这样,怎么样?
或者我是否需要创建UITableViewCell的子类?
就arquitect而言,也许最好创建一个子类,但无论如何,我需要编辑表格textlabel.text属性。
最好的方法是什么?我怎么能这样做?
谢谢,
RL
答案 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];
}
这只是一个演示,但你可以看到你需要扩展它以支持其他单元格等。