2011-10-28 68 views
1

的部分我有我的UITableView具體的UITableViewCell在UITableView的

if (indexPath.row == 6){ 
     UIImageView *blog = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"blog.png"]]; 
     [cell setBackgroundView:blog]; 
     UIImageView *selectedblog = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"blogSel.png"]]; 
     cell.selectedBackgroundView=selectedblog; 
     cell.backgroundColor = [UIColor clearColor]; 
     [[cell textLabel] setTextColor:[UIColor whiteColor]]; 
     return cell;} 

各指標的代碼,我有兩個部分,在每節5行。如何將第1節中的indexPath.row 1到5以及第2節中的indexPath.row 6到10?

回答

3
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 2; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 5; 
} 

現在,您的表格視圖將預期2個部分各有5行,並嘗試繪製它們。然後,在cellForRowAtIndexPath:

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSUInteger actualIndex = indexPath.row; 
    for(int i = 1; i < indexPath.section; ++i) 
    { 
     actualIndex += [self tableView:tableView 
           numberOfRowsInSection:i]; 
    } 

    // you can use the below switch statement to return 
    // different styled cells depending on the section 
    switch(indexPath.section) 
    { 
     case 1: // prepare and return cell as normal 
     default: 
      break; 

     case 2: // return alternative cell type 
      break; 
    } 
} 

actualIndex上述邏輯導致:

  • 第1節,1行至X返回indexPath.row不變
  • 第2節,排數1至Y返回X + indexPath.row
  • 第3章,行1到Z返回X + Y + indexPath.row
  • 可擴展到任何數量的部分

如果您有一個支持表格單元格的項目的底層數組(或其他平坦的容器類),這將允許您使用這些項目在表格視圖中填寫多個部分。

相關問題