标签:
- (void)tableView:(UITableView *)tableView willDisplayCell:(TestTableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { [cell animationForIndexPath:indexPath]; }2. UITableViewCell需要实现 - (void)animationForIndexPath:(NSIndexPath *)indexPath
- (void)animationForIndexPath:(NSIndexPath *)indexPath { int row = indexPath.row; float radians = (120 + row*30)%360; radians = 20; CALayer *layer = [[self.layer sublayers] objectAtIndex:0]; // Rotation Animation CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; animation.fromValue =@DEGREES_TO_RADIANS(radians); animation.toValue = @DEGREES_TO_RADIANS(0); // Opacity Animation; CABasicAnimation *fadeAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"]; fadeAnimation.fromValue = @0.1f; fadeAnimation.toValue = @1.f; // Translation Animation CABasicAnimation *translationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.translation.x"]; ; translationAnimation.fromValue = @(-300.f * ((indexPath.row%2 == 0) ? -1: 1)); translationAnimation.toValue = @0.f; CAAnimationGroup *animationGroup = [CAAnimationGroup animation]; animationGroup.duration = 0.4f; animationGroup.animations = @[animation,fadeAnimation,translationAnimation]; animationGroup.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; [layer addAnimation:animationGroup forKey:@"spinAnimation"]; }
#define DEGREES_TO_RADIANS(d) (d * M_PI / 180)
标签:
原文地址:http://www.cnblogs.com/zhangwei/p/4953190.html