Высота строки ячейки TableView не устанавливается динамически

У меня есть пользовательский класс ячейки с XIB, и я использую экземпляр пользовательского класса ячейки для табличного представления.

У меня есть два размера ячеек, один 220, а другой 360.

я устанавливаю высоту ячейки во время выполнения, используя метод heightForRowAtIndex,

но это не работает для меня.

когда я прокручиваю вниз, высота не устанавливается, и показывает так введите описание изображения здесь

и когда я прокручиваю вверх, ячейка, идущая вниз, показывает правильную высоту

как это: введите описание изображения здесь

вот мой класс таблицы XIB:

введите описание изображения здесь

Это очень странная проблема, с которой я столкнулся, используя tableviews.i я пробовал разные решения, но не работал. вот мой код:

//code in celllForRow



        UIColor * color=[UIColor colorWithRed:102.0/255.0 green:110.0/255.0 blue:124.0/255.0 alpha:1.0];
        static NSString *CellIdentifier = @"cell";
        FBTransportersEvaluationsCell *cell = (FBTransportersEvaluationsCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {
            cell = [FBTransportersEvaluationsCell getInstance];

        }


        if ([[[[evaluationsArray valueForKey:@"evaluationAnswer"]objectAtIndex:indexPath.row]valueForKey:@"message"] isEqual:@""] || [[[evaluationsArray valueForKey:@"evaluationAnswer"]objectAtIndex:0]valueForKey:@"message"]==(id)[NSNull null]) {

            cell.evaluationAnserSentTimeLabel.hidden=YES;
            cell.evaluationAnserSentDateLabel.hidden=YES;
            cell.evaluationAnswerSentByLabel.hidden=YES;
            cell.evaluationAnswerTextView.hidden=YES;
            cell.evaluationAnswerSingleLineView.hidden=YES;
            cell.evaluationResponceBigImg.hidden=YES;
            cell.evaluationAnswerSentDateImg.hidden=YES;
             cell.evaluationAnswerSentByTag_.hidden=YES;
            self.sendEvaluationResponceButton.hidden=NO;
            //
        }
        else
        {
            cell.evaluationAnserSentTimeLabel.hidden=NO;
            cell.evaluationAnserSentDateLabel.hidden=NO;
            cell.evaluationAnswerSingleLineView.hidden=NO;
            cell.evaluationResponceBigImg.hidden=NO;
            cell.evaluationAnswerSentByLabel.hidden=NO;
            cell.evaluationAnswerTextView.hidden=NO;
            self.sendEvaluationResponceButton.hidden=YES;
            cell.evaluationContentBigImage.image=[UIImage imageNamed:@"responce-img.png"];
            cell.evaluationAnswerTextView.text=[NSString stringWithFormat:@"\"%@ \" ",[[[evaluationsArray valueForKey:@"evaluationAnswer"]objectAtIndex:indexPath.row]valueForKey:@"message"]];
             cell.evaluationAnswerSentByLabel.text=[NSString stringWithFormat:@"%@",[[FBUserManager sharedUserManager]userName]];

            NSString * str = [NSString stringWithFormat:@"%@",[[[evaluationsArray valueForKey:@"evaluationAnswer"]objectAtIndex:indexPath.row]valueForKey:@"date_evaluation_answer"]];
            NSArray * arr = [str componentsSeparatedByString:@" "];
            cell.evaluationAnserSentDateLabel.text=[arr objectAtIndex:0];
            cell.evaluationAnserSentTimeLabel.text=[arr objectAtIndex:1];

        }


/// code in heightForRow


  if ([[[[evaluationsArray valueForKey:@"evaluationAnswer"]objectAtIndex:indexPath.row]valueForKey:@"message"] isEqual:@""] || [[[evaluationsArray valueForKey:@"evaluationAnswer"]objectAtIndex:0]valueForKey:@"message"]==NULL) {

              return 220;
        }
        else
        {
           return  360;



        }

И, наконец, вот ссылка на 15 секунд видео моего выпуска: Ссылка на видео

1 ответ

Пожалуйста, установите высоту строки в соответствии с вашими требованиями, как показано ниже,

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
      if(condition 1)
      {
        return height1;
      }
      else
     {
        return height2;
     }

}

а также проверьте ваше состояние для этого. http://www.raywenderlich.com/87975/dynamic-table-view-cell-height-ios-8-swift вы также можете обратиться за этим.

Другие вопросы по тегам