我建議添加您自己的意見,細胞的內容查看,就像這樣:
- (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];
}
這僅僅是一個示範,但你可以看到你需要擴展它以支持額外的細胞等
可能是最好的是創建的UITableViewCell的子類,這樣我必須將數據添加到的NSDictionary的方法,例如,共rrect? 在xcode4中,使用ARC,我需要NSAutoreleasePool嗎?這個是來做什麼的? (我是一個新手......)。 在此之後,我必須設置表允許版本,正確? –
@Rui:我不認爲你需要使用子類,但我不知道你的數據是什麼。一種常見的方法是以某種方式將該集合保存在視圖控制器中,也許在類變量中。你不應該讓你的單元格變得複雜,只是爲了存儲與你的視圖控制器相關的數據。 autorelease池只是爲了幫助內存管理,因爲某些對象被分配給每個小區。 –
我需要約20個細胞。我將有一個NSView對於tableView。但我想我會繼承,使用你的方法。謝謝 :) –