0

設定アプリと同様に、固定された数のセクションを表示することを目的としたグループ化されたスタイルの UITableView があり、各セクションには固定された一連のセルがあります。一部のセルはカスタムで、それらの間で異なります。一部にはテキストフィールドがあり、別のセルにはスイッチがあり、別のセルにはボタンがあります。私もUITableViewCellStyleDefault細胞を持っています。

カスタム セルはファイルから読み込まれ、テーブル ビュー全体で各セルnibのプロパティを定義しました。strong私のcellForRowAtIndexPath:方法は次のようになります。

- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:@"cell"];

   if (cell == nil) {

      if (indexPath.section == 0) {

         if (indexPath.row == 2) {
            NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"TypeACell" owner:nil options:nil];
            for (UIView *view in views) {
               if ([view isKindOfClass:[UITableViewCell class]])
               {
                   cell = (TypeACell *)view;
               }
            }

            // set property
            self.typeARow = cell;
         }

        else {
           NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"TypeBCell" owner:nil options:nil];
           for (UIView *view in views) {
              if ([view isKindOfClass:[UITableViewCell class]])
              {
                 cell = (TypeBCell *)view;
              }
           }

           // set properties
           if (indexPath.row == 0) {
              self.typeBRow0 = cell;
           }
           else {
              self.typeBRow1 = cell;
           } 
        }
     }

     else {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];

        // set property
        self.defaultCell = cell;
     }
  }

  return cell;
}

nibカスタム セルについては、ファイル内で再利用識別子を "cell" に設定しました。設定アプリのように、たとえばフォームやメニューを表すテーブルのセルのセットを事前に知っている場合、これは正しい方法ですか? 再利用識別子はすべてのセルで同じですか、それとも異なるセルごとに一意の識別子を持つ必要がありますか?

ありがとう!

4

0 に答える 0