Флэш-цвет фона UITableViewCell при перезагрузке - PullRequest
0 голосов
/ 16 сентября 2011

У меня есть UITableView в моем приложении. Выбор ячейки в табличном представлении добавляет подпредставление поверх, где пользователь может редактировать содержимое ячейки табличного представления. После того как пользователь отклоняет подпредставление, отредактированная ячейка перезагружается с использованием метода экземпляра UITableView reloadRowsAtIndexPaths: withRowAnimation:

Я хочу, чтобы отредактированная ячейка высвечивала свой цвет contentView.background как индикатор того, какая ячейка была только что обновлена. Я знаю о UITableViewRowAnimation, но это не дает мне того эффекта, который я хочу.

Есть предложения о том, как лучше всего это сделать?

Ответы [ 2 ]

2 голосов
/ 16 сентября 2011

Является ли [tableview reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade] неприемлемым?

1 голос
/ 15 апреля 2012

Немного поздно, но я думаю, что нашел хороший способ сделать это (просто взяв в качестве примера первую ячейку):

NSArray* cells = [self.tableView visibleCells];
UITableViewCell* cell = [cells objectAtIndex:0];
NSIndexPath* path = [self.tableView indexPathForCell:cell];
for (int i = 0; i <= 20; i++)
{
    UIColor* color = nil;
    if (i % 2 == 0) 
    {
        color = [UIColor whiteColor];
    }
    else 
    {
        color = [UIColor grayColor];
    }
    NSMutableArray* stuff = [[NSMutableArray alloc] initWithCapacity:2];
    NSArray* rowsToReload = [NSArray arrayWithObjects:path, nil];
    [stuff addObject:rowsToReload];
    [stuff addObject:color];
    [self performSelector:@selector(flash:) withObject:stuff afterDelay:i * .2];
}

И есть этот метод:

-(void)flash:(NSMutableArray*)stuff
{
    NSArray* rowsToReload = [stuff objectAtIndex:0];
    self.flashColor = [stuff objectAtIndex:1];
    [self.tableView reloadRowsAtIndexPaths:rowsToReload withRowAnimation:UITableViewRowAnimationNone];
}

Затем в вашем cellForRowAtIndexPath (вы, вероятно, хотите что-то после этого метода, который устанавливает flashColor обратно в ноль):

if (self.flashColor != nil) cell.backgroundColor = self.flashColor;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...