2015-03-14 2 views
0

Когда пользователь удаляет UITableViewCell, я хочу, чтобы изображение в этой ячейке создавало небольшую анимацию для воспроизведения, чтобы обеспечить обратную связь с пользователем. Эта анимация работает точно так, как я хочу, за исключением того, что она не всегда срабатывает, когда я нажимаю на ячейку. Я использую рамки анимации POP для Facebook.Facebook POP: анимация UITableViewCell не всегда работает

#import <POP/POP.h> 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
    MyCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"customcell" forIndexPath:indexPath]; 

    POPSpringAnimation *scaleAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewScaleXY]; 
    scaleAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(1,1)]; 
    scaleAnimation.velocity = [NSValue valueWithCGPoint:CGPointMake(5,5)]; 
    scaleAnimation.springBounciness = 20.f; 

    [cell.bounceimage pop_addAnimation:scaleAnimation forKey:@"scaleAnimation"]; 
} 

Нужно ли обновлять анимацию каждый раз, когда ячейка прослушивается или что-то еще мне не хватает?

Заранее спасибо

ответ

0

Проблема заключается в том, что вы создаете (или повторного использования) ячейки каждый раз, когда didSelectRowAtIndexPath называется потому, что вы используете dequeueReusableCellWithIdentifier. Вместо этого первая строка вашей реализации должна быть:

MyCustomCell *cell = (MyCustomCell *)[tableView cellForRowAtIndexPath: indexPath]; 
+0

Когда я реализую ваш метод, ячейка не создает анимацию отказов вообще. Я хочу видеть анимацию каждый раз при нажатии на ячейку. После установки скорости до 100 я вижу анимацию, превращающую изображение вверх ногами и анимацию очень случайную. Странно ... – user2381011

+0

Очень большая скорость, вероятно, приводит к тому, что масштаб будет отрицательным, что отразит его. Попробуйте несколько значений от 5 до 100. – combinatorial