Конкретные uitableviewcell в разделе uitableview - PullRequest
1 голос
/ 28 октября 2011

У меня есть этот код для каждого индекса моего 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 строк в каждом разделе.Как я могу поместить indexPath.row с 1 ​​по 5 в раздел 1 и indexPath.row с 6 по 10 в раздел 2?

1 Ответ

3 голосов
/ 28 октября 2011
- (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
  • Масштабируется до любого количества секций

Если у вас есть базовый массив (или другой класс плоских контейнеров) элементов, поддерживающих ячейки таблицы, это позволит вам заполнить несколько разделов в табличном представлении, используя эти элементы.

...