heightForRowatIndexPath не устанавливает высоту ячейки

Я пытаюсь создать сгруппированное табличное представление с 3 группами, и у каждой группы есть ячейки, которые имеют различную высоту. Я установил 3 прототипа ячеек в своем раскадровке с соответствующей высотой и настроил свой UITableViewController, чтобы он возвращал соответствующие высоты для каждой строки. Однако по какой-то причине все мои клетки имеют высоту всего 1 пиксель, когда они появляются на экране.

Я прошел через код, и верная высота и ячейка возвращаются для каждой строки. Я также проверил, что кадр каждой ячейки правильный, прежде чем он будет возвращен. Однако зовет rectForRowAtIndexPath показывает, что rect для каждой строки всего 1 пиксель в высоту.

Эта проблема полностью исчезает при использовании постоянной высоты ячейки. В этой ситуации ячейки отображаются отлично, некоторые из них слишком короткие / высокие, так как они должны быть переменной высоты.

Есть идеи, что здесь происходит? Я хотел бы понять, как определяется прямоугольник для каждой строки при использовании heightForRowAtIndexPath,

Код для heightForRowAtIndexPath:

- (NSInteger)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{    
    switch (indexPath.section) {
        case 0:
            return 80.0;
            break;

        case 1:
            return 260.0;
            break;

        case 2:
            return 110.0;
            break;

        case 3:
            return 114.0;
           break;

        default:
            break;
    }
    return 0;
}

2 ответа

Решение

Вы объявили tableView:heightForRowAtIndexPath: возвращать NSInteger,

Которые должны быть CGFloat,

Просто увеличить высоту строки. просто напишите метод для высоты строки в indexpath просто написано

if (indexpath.section== 0)

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