Uitableviewcell-тың арнайы бөліміндегі бөлімі

Менің кодымның әр индексі үшін осы коды бар

 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-ші бөлімге және indexPath.row 6-дан 10-шы бөлімге қалай қосуға болады?

1

1 жауаптар

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

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

Now your table view will expect 2 sections with 5 rows each, and try to draw them. Then, in 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
  • мәндерін қайтарады
  • Бөлімдердің кез-келген санына кеңейтіледі

Егер кесте ұяшықтарына қолдау көрсететін элементтердің негізгі массиві (немесе басқа жалпақ контейнер класы) болса, бұл сол элементтерді пайдаланып кесте көрінісінде бірнеше бөлімдерді толтыруға мүмкіндік береді.

3
қосылды