Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CABasicAnimation* rotationXAnimation;
- rotationXAnimation = [CABasicAnimation animationWithKeyPath:@"position.y"];
- rotationXAnimation.fromValue = [NSNumber numberWithFloat: ((UIControl *) sender).center.y-1.0 ];
- rotationXAnimation.toValue = [NSNumber numberWithFloat: ((UIControl *) sender).center.y+1.0 ];
- rotationXAnimation.duration = 0.2;
- rotationXAnimation.cumulative = NO;
- rotationXAnimation.repeatCount = 10.0;
- rotationXAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
- [((UIControl *) sender).layer addAnimation:rotationXAnimation forKey:@"upDownAnimation"];
- CABasicAnimation* rotationAnimation;
- rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
- rotationAnimation.fromValue = [NSNumber numberWithFloat: -M_PI * 0.02 ];
- rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 0.02 ];
- rotationAnimation.duration = 0.2;
- rotationAnimation.cumulative = NO;
- rotationAnimation.repeatCount = 10.0;
- rotationAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
- [((UIControl *) sender).layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];
- CABasicAnimation* scaleAnimation;
- scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
- scaleAnimation.fromValue = [NSNumber numberWithFloat: 0.95 ];
- scaleAnimation.toValue = [NSNumber numberWithFloat: +1.05 ];
- scaleAnimation.duration = 0.1;
- scaleAnimation.cumulative = NO;
- scaleAnimation.repeatCount = 10.0;
- scaleAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
- [((UIControl *) sender).layer addAnimation:scaleAnimation forKey:@"scaleAnimation"];
- - (void)earthquake:(UIView*)itemView
- {
- CGFloat t = 2.0;
- CGAffineTransform leftQuake = CGAffineTransformTranslate(CGAffineTransformIdentity, t, -t);
- CGAffineTransform rightQuake = CGAffineTransformTranslate(CGAffineTransformIdentity, -t, t);
- itemView.transform = leftQuake; // starting point
- [UIView beginAnimations:@"earthquake" context:itemView];
- [UIView setAnimationRepeatAutoreverses:YES]; // important
- [UIView setAnimationRepeatCount:4];
- [UIView setAnimationDuration:0.07];
- [UIView setAnimationDelegate:self];
- [UIView setAnimationDidStopSelector:@selector(earthquakeEnded:finished:context:)];
- itemView.transform = rightQuake; // end here & auto-reverse
- [UIView commitAnimations];
- }
- - (void)earthquakeEnded:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
- {
- if ([finished boolValue])
- {
- UIView* item = (UIView *)context;
- item.transform = CGAffineTransformIdentity;
- }
- }
Add Comment
Please, Sign In to add comment