2011-07-08 71 views
0

我需要創建一個表單,以便用戶可以編輯表格(約20)的所有單元格。UITableViewCellStyleValue2編輯文字 - 填寫格式如

我可以用UITableViewCellStyleValue2辦呢?如果是這樣,怎麼樣?

或者我需要創建的UITableViewCell的子類?

在arquitect而言,也許這是最好創建一個子類,但無論如何,我需要編輯表中,textlabel.text財產。

最好的方法是什麼?我該怎麼做?

感謝,

RL

回答

0

我建議添加您自己的意見,細胞的內容查看,就像這樣:

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

這僅僅是一個示範,但你可以看到你需要擴展它以支持額外的細胞等

+0

可能是最好的是創建的UITableViewCell的子類,這樣我必須將數據添加到的NSDictionary的方法,例如,共rrect? 在xcode4中,使用ARC,我需要NSAutoreleasePool嗎?這個是來做什麼的? (我是一個新手......)。 在此之後,我必須設置表允許版本,正確? –

+0

@Rui:我不認爲你需要使用子類,但我不知道你的數據是什麼。一種常見的方法是以某種方式將該集合保存在視圖控制器中,也許在類變量中。你不應該讓你的單元格變得複雜,只是爲了存儲與你的視圖控制器相關的數據。 autorelease池只是爲了幫助內存管理,因爲某些對象被分配給每個小區。 –

+0

我需要約20個細胞。我將有一個NSView對於tableView。但我想我會繼承,使用你的方法。謝謝 :) –