Я занимаюсь разработкой приложения для отображения push-уведомлений в uitableview.Если уведомление еще не показано пользователем, ячейка, которая печатает это уведомление, имеет серый фоновый цвет.Поэтому, когда представление загружено в методе
cellForRowAtIndexPath
, я вижу, не отображается ли уведомление, изменяя фон ячейки на серый и оставляя его по умолчанию, если отображается уведомление
if([shown isEqualToString:@"no"]){
cell.contentView.backgroundColor = [UIColor lightGrayColor];
cell.textLabel.backgroundColor = [UIColor lightGrayColor];
cell.detailTextLabel.backgroundColor = [UIColor lightGrayColor];
}
cell.textLabel.text = [NSString stringWithFormat:@"Notifica del %@",data];
cell.detailTextLabel.text = message;
Я хочу изменить цветфона в белом (тот же стиль, когда я не касаюсь цвета фона при загрузке), когда пользователи нажимают на ячейку
, я делаю это:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *not = [notification objectAtIndex:indexPath.row];
NSArray *stringArray = [not componentsSeparatedByString:@"---"];
NSString *message = [stringArray objectAtIndex:0];
NSString *data = [stringArray objectAtIndex:1];
NSString *shown = [stringArray objectAtIndex:2];
UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
cell.contentView.backgroundColor = [UIColor whiteColor];
cell.textLabel.backgroundColor = [UIColor whiteColor];
cell.detailTextLabel.backgroundColor = [UIColor whiteColor];
UIAlertView *popUp = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"Notifica del %@",data] message:message delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[popUp show];
[popUp release];
}
в результате получается, что вся ячейкастановятся полностью белыми (скрытие текстов) и появляются оповещения, но когда я нажимаю на другую ячейку, первый щелчок становится снова, как раньше, и новая нажатая ячейка становится полностью белой ... как я могу это сделать?Вы можете мне помочь?