0

我正在制作一个应用程序,其中有一个数组中的名人名言,这些名言正在被读出openears,一个tableView显示所有名言。当前阅读的报价将在表格视图中以与其他报价不同的颜色显示。我尝试了以下功能,cellForRowAtIndexPath但单元格的颜色保持不变,除非用户将其滚动出来然后返回视图。但我需要自动设置颜色,同时所有其他单元格应恢复为初始(白色)颜色。有没有什么方法可以做到这一点?我不想每次都重新加载表格来实现这一点。

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];
    }
4

1 回答 1

0

我可能是错的,但是你想如何在不重绘单元格的情况下实现单元格外观的改变?

如果您不想重新加载所有表,请尝试重新加载刚刚更改的行

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

于 2013-09-30T12:48:01.960 回答