Свернуть / Развернуть конкретную ячейку в UITableView - PullRequest
0 голосов
/ 23 мая 2018

У меня в настоящее время есть 2 категории (кошка, собака) в 1 UITableView.

Это иллюстрация: enter image description here

Кнопка кота и собаки является частьюUITableView они находятся в разделе заголовка.они действуют как разделитель для обеих категорий.

я пытаюсь добиться, когда я нажимаю кнопку «кошка», список под кнопкой «кошка» должен свернуться, а кнопка «собака» должна изменить свою позицию.Когда я снова нажму кнопку кота, список должен расшириться.

то, что у меня сейчас есть:

NSUInteger indexes = (unsigned long)filteredList.count;
    for (int i = 0 ; i <= indexes - 1 ; i++)
    {
    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:i inSection:0];
    [self.accountBalanceTableView cellForRowAtIndexPath:indexPath].hidden = YES;
    }

Оно скрывает весь мой список кошек, но кнопка «Собака» не регулирует свою позицию, когда просто оставляет огромное количество пустого пространства на экране.

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

You want like this??

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

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


    if (tableView == _tblDispChapters) {

        if(indexPath.row == 0){

            TVCDispChapters *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

            //Accuracy
            int acu;
            if ([[marrParentChapters objectAtIndex:indexPath.section]valueForKey:@"acuracy"]==[NSNull null] ) {
                 NSLog(@"%@",[[marrParentChapters objectAtIndex:indexPath.section]valueForKey:@"acuracy"]);
                acu=0;
            }
            else
            {
                acu=[[[marrParentChapters objectAtIndex:indexPath.section]valueForKey:@"acuracy"] intValue];
                NSLog(@"%d",acu);
            }

            cell.lbl_acu.text=[NSString stringWithFormat:@"Accuracy %d%%",acu];
            [cell.pro_cell_chapt.layer setCornerRadius:cell.pro_cell_chapt.frame.size.height/2];
            cell.pro_cell_chapt.clipsToBounds = true;
            [cell.pro_cell_chapt setTransform:CGAffineTransformMakeScale(1.0f, 2.0f)];

            cell.pro_cell_chapt.progress =  acu/100.0;
            cell.pro_cell_chapt.trackTintColor = [UIColor colorWithHex:0xDDDDDD];
            cell.pro_cell_chapt.progressTintColor = [UIColor colorWithHex:0xEF9430];


            cell.lblChepterName.text = [[marrParentChapters objectAtIndex:indexPath.section]valueForKey:@"ChapterName"];
            [cell.btn_sel_allchptr setTag:indexPath.section];
            [cell.btn_sel_allchptr addTarget:self action:@selector(checkBoxClicked:)forControlEvents:UIControlEventTouchUpInside];

            if ([[_marrHideShowSection objectAtIndex:indexPath.section] boolValue]){
                [cell.imgArrow setImage:[UIImage imageNamed:@"up-arrow1"]];
            }else{
                [cell.imgArrow setImage:[UIImage imageNamed:@"down-arrow1"]];

            }

            if ([[_marrAllChapter objectAtIndex:indexPath.section] boolValue]){
                [cell.img_cpt_select setImage:[UIImage imageNamed:@"checkbox-selected1"]];
            }else{
                [cell.img_cpt_select setImage:[UIImage imageNamed:@"checkbox-unselected1"]];
            }
            return cell;
        }else{
            TVCDispChapters *cell = [tableView dequeueReusableCellWithIdentifier:@"sub_Cell" forIndexPath:indexPath];
            cell.lblSubChapterName.text = [[[marrSubChapters objectAtIndex:indexPath.section] objectAtIndex:indexPath.row-1]valueForKey:@"ChapterName"];

            if ([[[_marrSelectionSection objectAtIndex:indexPath.section] objectAtIndex:indexPath.row-1] boolValue])
            {
                [cell.imgSelection setImage:[UIImage imageNamed:@"checkbox-selected1"]];
            }else{
                [cell.imgSelection setImage:[UIImage imageNamed:@"checkbox-unselected1"]];
            }
            return cell;
        }
    }else{

        QuestionTypeTVC *cell1 = [tableView dequeueReusableCellWithIdentifier:@"CellQuesType" forIndexPath:indexPath];

        if ([_marrSelectedQuestionypeID containsObject:[[_marrQuestiontype objectAtIndex:indexPath.row] valueForKey:@"QuestionTypeID"]]){
            cell1.imgSelection.image = [UIImage imageNamed:@"checkbox-selected1"];
        }else{
            cell1.imgSelection.image = [UIImage imageNamed:@"checkbox-unselected1"];
        }
        cell1.lblQuesType.text=@"1";
        return cell1;
    }
}
0 голосов
/ 23 мая 2018

Это можно сделать двумя способами.

  • Изменить высоту строк в разделе, который вы хотите скрыть.
  • Вернуть 0 для строк в разделе, который вы хотите скрыть.хочу спрятаться.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...