1. 定义shake方法
- (void)shake {
CAKeyframeAnimation *keyFrame = [CAKeyframeAnimation animationWithKeyPath:@"position.x"];
keyFrame.duration = 0.4;
CGFloat x = self.layer.position.x;
keyFrame.values = @[@(x + 50), @(x - 50), @(x + 40), @(x - 40), @(x + 30), @(x - 30), @(x + 20), @(x - 20), @(x + 10), @(x - 10), @(x + 5), @(x - 5)];
[self.layer addAnimation:keyFrame forKey:@"shake"];
}
2.CAKeyframeAnimation介绍
创建帧动画CAKeyframeAnimation *keyFrame = [CAKeyframeAnimation animationWithKeyPath:@”position.x”];
keyFrame会按照keyFrame.values数组里的每个元素播放动画持续0.4秒,继而实现振动
keyFrame.values = @[@(x + 50), @(x - 50), @(x + 40), @(x - 40), @(x + 30), @(x - 30), @(x + 20), @(x - 20), @(x + 10), @(x - 10), @(x + 5), @(x - 5)];