Я бы еще посмотрел различные категории на stackoverflow и github. Например, трясучка:
- (void) rubberAnimation
{
CGFloat transforms [] = {0.5, 1.045, 1.0, 1.03, 1.0, 1.015, 1.0};
CALayer* layer = self.layer;
NSMutableArray *scales = [NSMutableArray new];
for(int i = 0; i < 5; ++i) {
CATransform3D transform = CATransform3DMakeScale(transforms[i], transforms[i], 1);
[scales addObject:[NSValue valueWithCATransform3D:transform]];
}
NSArray *times = [NSArray arrayWithObjects:@(0.0), @(0.3), @(0.44), @(0.58), @(0.58 + 0.14), @(0.58 + 0.14 * 2), @(1.0), nil];
CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
keyFrameAnimation.values = scales;
keyFrameAnimation.keyTimes = times;
keyFrameAnimation.duration = 0.7;
keyFrameAnimation.calculationMode = kCAAnimationLinear;
keyFrameAnimation.removedOnCompletion = YES;
[layer addAnimation:keyFrameAnimation forKey:@"transform"];
}