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;