2013-08-05 1 views
0

-Hi, у меня проблема с перезагрузкой данных таблицы, и я хочу, чтобы вы поместили выделенную ячейку в синий цвет и изменили изображение, то есть проблема в том, что если я сделаю кнопку [self.mytableview reloadData] в didselectedRow синем фоне исчезает, и если я делаю образ ячейки не меняется, я немного потерял с этой части кода я благодарюНенадлежащее функционирование tableView данных и подзарядки

if (indexPath.row == _selectedRow) { 

      UIImageView *favView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"favIconSelected.png"]]; 
      CGRect frame = favView.frame; 
      frame.origin.x = 294; 
      frame.origin.y = 7; 
      favView.frame = frame; 

      [cell.contentView addSubview:favView]; 

      [favView release]; 
     } 

cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:SELCETED_BGIMGCELL]]autorelease]; 



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 


    Product *p = [_productList objectAtIndex:indexPath.row]; 

    _selectedRow=indexPath.row; 
    [_delegate productWasSelected:p]; 
    [self.myTableView reloadData]; 

} 

ответ

0

Вы надеваете» t необходимо позвонить reloadData. Все, что вам нужно сделать, это обновить выбранную ячейку.

В способе didSelectRowAtIndexPath вы можете получить ячейку напрямую, позвонив по телефону cellForRowAtIndexPath по телефону tableView. Это вернет фактическую ячейку, которая отображается на дисплее, и вы можете напрямую установить отображаемое изображение.

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
cell.imageView.image = ...; 

В качестве альтернативы вы можете контролировать отображение изображения с вашего мобильного подкласса, если вы предоставите его с нормальной и выбранных изображений при настройке каждого экземпляра.

+0

Извините, я не понял вообще, если бы я сделал это, чтобы [self.mytableview reloadData] не потерял все снова? Если вы были достаточно любезны, чтобы дать мне пример, спасибо – user2652032

+0

, когда вы делаете «reloadData», все предыдущие ячейки удаляются и создаются новые ячейки. –

+0

okey, я работал, но теперь я могу думать о проблеме, когда я иду в другую ячейку, предыдущая ячейка с изображением остается, когда вы хотите выбрать и вернуться в исходное состояние, которое вы бы порекомендовали? – user2652032