2013-09-30 3 views
0

Я делаю приложение, в котором есть цитаты из известных людей в массиве, которые считываются openears и tableView, который показывает все кавычки. В настоящее время чтение цитаты должно отображаться в виде таблицы в другом цвете, чем другие кавычки. Я пробовал со следующей функцией в cellForRowAtIndexPath, но цвет ячейки остается тем же, если пользователь не прокручивает его, а затем возвращается к представлению. Но мне нужно установить цвет автоматически, и в то же время все остальные ячейки должны вернуться к исходному (белому) цвету. Есть ли способ, который может это сделать? Я не хочу каждый раз перезагружать таблицу, чтобы добиться этого.Редактировать свойство UITableViewCell при прокрутке

if ([[arrayOfQuoteIds objectAtIndex:indexPath.row]intValue] == currentQuoteId) { 
     cell.backgroundColor = [self colorWithHexString:@"D3FFFF"]; 
     cell.contentView.backgroundColor = [self colorWithHexString:@"D3FFFF"]; 
     cell.textLabel.backgroundColor = [self colorWithHexString:@"D3FFFF"]; 
     cell.detailTextLabel.backgroundColor = [self colorWithHexString:@"D3FFFF"]; 
     cell.accessoryView.backgroundColor = [self colorWithHexString:@"D3FFFF"]; 
    } 
    else { 
     cell.backgroundColor = [UIColor whiteColor]; 
     cell.contentView.backgroundColor = [UIColor whiteColor]; 
     cell.textLabel.backgroundColor = [UIColor whiteColor]; 
     cell.detailTextLabel.backgroundColor = [UIColor whiteColor]; 
     cell.accessoryView.backgroundColor = [UIColor whiteColor]; 
    } 

ответ

0

Я могу ошибаться, но как вы хотите добиться изменения ячеек клеток без перерисовки ячейки?

Если Вы не хотите перезагрузить все таблицы Попробуйте обновить только измененные строки

- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation

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