/ / Защо self.tablview.rowHeight не връща височината от Storyboard? - ios, uitableview, heightforrowatindexpath

Защо self.tablview.rowHeight не връща височината от Storyboard? - ios, uitableview, heightforrowatindexpath

Трябва да задам височината само за един ред програмно, всички останали редове са статични клетки, създадени в Storyboard с различни височини.

В моя код 5-та клетка трябва да бъде "скрита" по подразбиране, затова искам да задам височината на този ред на 0,0. Всички останали клетки трябва да използват височината си от Storyboard, аз използвам метода tableView:heightForRowAtIndexPath за да зададете височината на клетките.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat height = self.tableView.rowHeight;

if (indexPath.row == 4)
{
height = 0.0f;
}

return height;
}

Проблемът е, че self.tableView.rowHeight винаги се връща 658 като височина, което е напълно грешна стойност.

Отговори:

0 за отговор № 1

Ако внедрите heightForRowAtIndexPath трябва да зададете стойност за всички клетки или ще се сблъскате с подобни неща. Това, което можете да направите, е следното:

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.row){
case 4:
return 0;

default:

static NSNumber *height;
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyCustomCell"];
height = @(cell.bounds.size.height);
return [height floatValue];
}
}