Я использовал потрясающий ответ @ Joy, и он отлично работал с ios 8.4 и XCode 7.1.1.
Если вы хотите, чтобы ваша ячейка переключалась, я изменил -tableViewDidSelect следующим образом:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
//This is the bit I changed, so that if tapped once on the cell,
//cell is expanded. If tapped again on the same cell,
//cell is collapsed.
if (self.currentSelection==indexPath.row) {
self.currentSelection = -1;
}else{
self.currentSelection = indexPath.row;
}
// animate
[tableView beginUpdates];
[tableView endUpdates];
}
Я надеюсь, что все это помогло вам.