晚了一點,但我想我找到了一個好辦法做到這一點(只是抓住了第一個小區爲例):
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;
謝謝你的ans WER。也許我會最終使用它,但我更喜歡讓backgroundColor閃爍一種我選擇的顏色。我也希望能夠控制動畫長度。 – Darren
謝謝!我只是在尋找完全相反的東西,我的細胞閃爍,看到你的答案後,我意識到這是因爲UITableViewRowAnimationFade。 – user1046037