在表视图中管理固定单元的适当方法

时间:2013-07-11 16:19:47

标签: ios uitableview custom-controls reuseidentifier

我有一个分组风格的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文件中将重用标识符设置为“单元格”。当您事先知道表格的单元格集(例如表单或菜单,如“设置”应用程序)时,这是正确的方法吗?重用标识符对于所有单元格是否相同,或者每个不同的单元格是否具有其唯一标识符?

谢谢!

0 个答案:

没有答案