Включение / выключение ячейки в UITableView в той же ячейке, в том же представлении - PullRequest
0 голосов
/ 29 апреля 2011

Можно ли сделать так, чтобы одна ячейка в UITableView имела поведение ВКЛ / ВЫКЛ?По сути, когда я щелкаю ячейку, она становится зеленой, чего я и хочу.Это не идет к другому viewController или что-нибудь.Но затем, когда я снова щелкаю по той же ячейке, в том же виде, я хочу, чтобы зеленый цвет исчез, и чтобы он вернулся в прежнее состояние цвета.

Вот как у меня есть didSelectRowAtIndexPath

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *selectedPhrase = [dataTable objectAtIndex:indexPath.row];
    [self setCurrentPhrase:selectedPhrase];
}

Это кажется простым вопросом.Я знаю, что могу заскочить [tableView deselectRowAtIndexPath:indexPath animated:YES];, но это просто делает его незамеченным сразу после того, как я нажму на него.

Спасибо!

Аарон

1 Ответ

1 голос
/ 29 апреля 2011

вы можете изменить цвет фона вашего UITableViewCell при выделении, так что вы можете использовать BOOL, который скажет вам, что заполнять фон (зеленый или просто прозрачный цвет).

Доступ к вашей ячейке черезметод ниже

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath

Используйте ниже в качестве справочного кода.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSString *selectedPhrase = [dataTable objectAtIndex:indexPath.row];
    [self setCurrentPhrase:selectedPhrase];

      MyCutsomCell* myCell= (MyCutsomCell*)[tableView cellForRowAtIndexPath:indexPath];
      if(myCell.isGreen)
      {
         //Change backgroundColor to Green
      }
      else
      {
         //Clear backgroundColor
      }

      myCell.isGreen = !myCell.isGreen;
}
...