DidselectRowAtIndexPath работает для выбранной ячейки в виде таблицы

Я создаю расширяемое табличное представление, когда мы нажимаем на какую-либо ячейку, которую должна расширять соответствующая ячейка, если мы щелкнем по той же ячейке, которую она должна свернуть. Превосходно работает. В каждой ячейке у меня есть элемент пользовательского интерфейса, который берется в пользовательской ячейке. Моя проблема заключается в том, что когда я нажал последнюю ячейку, она показывает элементы, но когда я нажимаю на вышеуказанные ячейки, элементы пользовательского интерфейса не отображают его, показывая пустое. Вот мое, что я пробовал в didSelectRowAtIndexPath.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
// selectedIndex = indexPath.row;
[tableView deselectRowAtIndexPath:indexPath animated:YES];
if ([_expandedCells containsObject:indexPath])
{ [_expandedCells removeObject:indexPath];
}
else
{ if ([_expandedCells count]) { [_expandedCells removeObjectAtIndex:0]; } [_expandedCells addObject:indexPath];
}
// [self.voicemailTable reloadRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationFade];
// [self.voicemailTable reloadRowsAtIndexPaths:[self.voicemailTable indexPathsForVisibleRows] withRowAnimation:UITableViewRowAnimationFade];
[tableView beginUpdates];
[tableView endUpdates];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat kExpandedCellHeight = 150.0f;
CGFloat kNormalCellHeigh = 60.0f;
if ([_expandedCells containsObject:indexPath])
{ customCell.playBtn.hidden = NO; customCell.minimumLbl.hidden = NO; customCell.maximumLbl.hidden = NO; customCell.sliderBG.hidden = NO; customCell.slider.hidden = NO; return kExpandedCellHeight;
}
else
{ customCell.playBtn.hidden = YES; customCell.minimumLbl.hidden = YES; customCell.maximumLbl.hidden = YES; customCell.sliderBG.hidden = YES; customCell.slider.hidden = YES; return kNormalCellHeigh;
}
}

Это то, что я пытаюсь показать после выбора ячейки в таблице. Здесь _expandableCells является NSmutableArray. заранее спасибо

1 ответ

Попробуйте переместить весь код конфигурации ячейки на cellForRowAtIndexPath:

Вот так:

YourCustomCellClass *customCell = [tableView - (id)dequeueReusableCellWithIdentifier: <your cell="" identifier=""> forIndexPath:indexPath];
if ([_expandedCells containsObject:indexPath]){ customCell.playBtn.hidden = NO; customCell.minimumLbl.hidden = NO; customCell.maximumLbl.hidden = NO; customCell.sliderBG.hidden = NO; customCell.slider.hidden = NO;
}else{ customCell.playBtn.hidden = YES; customCell.minimumLbl.hidden = YES; customCell.maximumLbl.hidden = YES; customCell.sliderBG.hidden = YES; customCell.slider.hidden = YES;
}
return customCell;
</your>

licensed under cc by-sa 3.0 with attribution.