2011-07-08 3 views
0

のようなテキスト入力フォームを編集するユーザーがテーブルのすべてのセルを編集できるようにフォームを作成する必要があります(約20)。UITableViewCellStyleValue2

UITableViewCellStyleValue2で行うことはできますか?もしそうなら、どうですか?

また、UITableViewCellのサブクラスを作成する必要がありますか?

arquitectの観点からは、サブクラスを作成する方が良いかもしれませんが、とにかく、textlabel.textプロパティを編集する必要があります。

どのような方法が最適ですか?そして私はそれをどうすればいいのですか?

おかげで、私はそうのように、セルのcontentViewに独自のビューを追加することをお勧めします

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にデータを追加する方法があります。たとえば、co起立? xcode4では、ARCでNSAutoreleasePoolが必要ですか?これは何のため? (私は一種の初心者です...)。 これ以降、私はテーブルを正しく編集できるように設定する必要がありますか? –

+0

@Rui:私はあなたがサブクラスを使う必要はないと思っていますが、あなたのデータが本当にわからないのです。一般的なアプローチは、おそらくクラス変数の中に何らかの形でビュー・コントローラー内にそのコレクションを保持することです。 View Controller全体を基準にしてデータを格納するだけでは、セルを複雑にする必要はありません。 自動解放プールは、各セルにいくつかのオブジェクトが割り当てられているため、メモリ管理に役立ちます。 –

+0

私は約20の細胞を持つ必要があります。私はtableViewのNSDictionaryを持っています。しかし、私はあなたのアプローチを使用して、サブクラス化すると思います。ありがとう:) –