Как редактировать цвет фона uitableviewcell при выделении ячейки - PullRequest
0 голосов
/ 01 января 2012

Я занимаюсь разработкой приложения для отображения 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];
}

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

1 Ответ

0 голосов
/ 05 января 2012

Сделайте UIView в своей ячейке. Возьмите UILabel на этом UIView.напишите cell текст на этом UILabel.Теперь установите, что UIView backgroundColor и cell.seletionStyle = нет и UILabel backgroundColor = ясно.

Теперь, в

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

 change your view background color and uilabel color. shortly change color of cellview and cell text color

}

это всего лишь предложение, может быть, оно поможет вам.

...