2016-03-11 2 views
0

У меня возникает странное поведение в боковом меню. Вот то, что он должен выглядеть следующим образом:Ячейки UITableView в боковом меню исчезают

enter image description here

После нажатия на кнопку, расположенную справа от организации я использую этот код, чтобы показать еще некоторые клетки

[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationFade]; 

Если я перейти из меню с помощью в организации клетки, показывая, а затем вернуться обратно в меню он показывает это:

enter image description here

Ячейки отображаются как скрытые, но когда я устанавливаю ячейки, чтобы они не были скрыты следующим образом: cell.hidden = NO; он по-прежнему отображается как скрытый.

Любые идеи относительно того, что происходит? В моем коде нет нигде, поэтому я устанавливаю любые ячейки как скрытые.

Если вам нужно больше кодов, то дайте мне знать.

Благодаря

Вот еще код:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
static NSString *cellIdentifier = @"MenuCell"; 
MenuTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
if (cell == nil) 
{ 
    cell = [[MenuTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier]; 
} 

if (indexPath.section == 0) 
{ 
    if (showOrgs && indexPath.row < organizations.count) 
    { 
     cell.label.text = [organizations objectAtIndex:indexPath.row]; 
     cell.label.textColor = [UIColor whiteColor]; 
     cell.leftImageView.hidden = YES; 
     cell.contentView.backgroundColor = [UIColor colorWithHex:@"#ff6b01" alpha:1.0]; 
     cell.tag = 10002; 
     cell.leftButton.hidden = YES; 
     cell.righttButton.hidden = YES; 
     cell.leftButton.enabled = NO; 
     cell.righttButton.enabled = NO; 
    } 
    else if (showOrgs && indexPath.row >= organizations.count) 
    { 
     if (indexPath.row == organizations.count) 
     { 
      cell.label.text = [allUpper objectAtIndex:indexPath.row];//[organizations objectAtIndex:indexPath.row]; 
      cell.contentView.backgroundColor = [UIColor whiteColor]; 
      cell.label.textColor = [UIColor blackColor]; 
      cell.tag = 10001; 
      [cell.leftImageView setImage:[UIImage imageNamed:@"dashboard"]]; 
      cell.leftImageView.hidden = NO; 
     } 
     else 
     { 
      cell.label.text = [allUpper objectAtIndex:indexPath.row]; 
      cell.label.textColor = [UIColor blackColor]; 
      cell.contentView.backgroundColor = [UIColor whiteColor]; 
      cell.tag = 10003; 
      if ([[allUpper objectAtIndex:indexPath.row] isEqualToString:@"All Media"]) 
      { 
       cell.leftImageView.image = [UIImage imageNamed:@"image-btn"]; 
       cell.leftImageView.hidden = NO; 
      } 
     } 
    } 
    NSLog(@"Row: %li", (long)indexPath.row); 
    if (!showOrgs && [[upperSection objectAtIndex:indexPath.row] isEqualToString:@"Dashboard"]) 
    { 
     cell.label.text = [upperSection objectAtIndex:indexPath.row];//[organizations objectAtIndex:indexPath.row]; 
     cell.contentView.backgroundColor = [UIColor whiteColor]; 
     cell.tag = 10001; 
     cell.hidden = NO; 
     [cell.leftImageView setImage:[UIImage imageNamed:@"dashboard"]]; 
    } 
    else if (!showOrgs && [[upperSection objectAtIndex:indexPath.row] isEqualToString:@"All Media"]) 
    { 
     cell.label.text = [upperSection objectAtIndex:indexPath.row]; 
     cell.contentView.backgroundColor = [UIColor whiteColor]; 
     cell.tag = 10003; 
     cell.hidden = NO; 
     if ([[upperSection objectAtIndex:indexPath.row] isEqualToString:@"All Media"]) 
     { 
      cell.leftImageView.image = [UIImage imageNamed:@"image-btn"]; 
     } 
    } 
} 

// if (indexPath.section == 0 && showOrgs) 
//  cell.label.text = [organizations objectAtIndex:indexPath.row]; 
else if (indexPath.section == 1) 
    cell.label.text = [currentEvents objectAtIndex:indexPath.row]; 
else 
    cell.label.text = [allEvents objectAtIndex:indexPath.row]; 

return cell; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
if (section == 0 && !showOrgs) 
    return upperSection.count; 
else if (section == 0 && showOrgs) 
    return allUpper.count; 
else if (section == 1) 
    return currentEvents.count; 
else 
    return allEvents.count; 
} 
+0

Не могли бы вы добавить код, чтобы было легче следовать? Какие ячейки добавляются при нажатии кнопки «Организация»? Что вызывает меню, чтобы вернуться к «нормальному» пути? –

+0

@RaphaelSilva Я добавил метод cellForRowAtIndex. У меня просто есть жестко закодированные элементы в массиве, которые нужно добавить поверх списка. Когда меню закрыто, BOOL showOrgs установлен в no, а затем я перезагружаю tableview – linuxer

+0

Можете ли вы показать свой метод 'numberOfRowsInSection'? – wottle

ответ

0

Я сделал некоторые изменения в блоки следующего предложению wottle, а затем добавил это до конца блока, когда не показывая Orgs

cell.leftButton.hidden = NO; 
cell.righttButton.hidden = NO; 
cell.leftButton.enabled = YES; 
cell.righttButton.enabled = YES; 
cell.leftImageView.hidden = NO; 
cell.label.hidden = NO; 
cell.label.textColor = [UIColor blackColor]; 

Это, кажется, решило его. Спасибо за вашу помощь.

Смежные вопросы