У меня есть UITableView с картами в нем. Если карта воспроизводится, цвет фона зеленый, если нет, цвет фона красный. Я хочу, чтобы это было анимированный в пульсирующем пути, и я уже успел сделать так:Анимация UITableViewCell backgroundcolor
-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
Card *card;
card = [[game playerCards] objectAtIndex:indexPath.row];
if(card.playable == IsPlayable){
[UIView animateKeyframesWithDuration:0.9 delay:0.0 options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse | UIViewAnimationOptionAllowUserInteraction animations:^{
cell.backgroundColor = [UIColor colorWithRed:0.105882F green:0.564706F blue:0.243137F alpha:1.0F];
cell.backgroundColor = [UIColor colorWithRed:0.105882F green:0.564706F blue:0.243137F alpha:0.0F];
completion:^(BOOL finished) {
}];}
else if (card.playable == IsNotPlayable){
[UIView animateKeyframesWithDuration:0.9 delay:0.0 options:UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse | UIViewAnimationOptionAllowUserInteraction animations:^{
cell.backgroundColor = [UIColor colorWithRed:1.000000F green:0.000000F blue:0.090196F alpha:1.0F];
cell.backgroundColor = [UIColor colorWithRed:1.000000F green:0.000000F blue:0.090196F alpha:0.0F];
completion:^(BOOL finished) {
}];}
}
Это работает очень хорошо, но, анимация не синхронизированы после прокрутки. Поэтому, когда viewdidload закончен, все видимые ячейки пульсируют синхронно, но после прокрутки таблицы анимация больше не синхронизируется, что дает уродливый эффект.
Мне удалось преодолеть это, вызвав [playerCardsTable reloadData] в scrollViewDidScroll. Теперь, когда я просматриваю таблицу, анимация останавливается и дает ей правильный цвет в полной альфе, и когда прокрутка остановлена, она снова начинает пульсировать синхронно. Это именно то, что я хочу! Но это кажется очень «дорогим способом». При прокрутке процессор достигает 12% (индикатор ЦП в Xcode). Я также попытался запустить анимацию с помощью таймера, но безрезультатно.
Должен ли я продолжать повторную загрузку данных таблицы во время прокрутки? Или есть другой способ? И побочный вопрос, составляет 12% (Mac Mini i7)?
Спасибо!
Вы не должны повторно отправить свой вопрос, вместо этого вы должны редактировать старые один. http://stackoverflow.com/questions/22373185/sync-animation-background-color-uitableviewcell – vikingosegundo
Мой плохой, удаленный старый. – Niels
@ Нильс, мне просто интересно, почему бы не поставить свой код в cellForRow? – John