其实就是一个简单的关键帧动画
+ (void)controlsShakeForView:(UIView *)view {
CAKeyframeAnimation *keyAn = [CAKeyframeAnimation animationWithKeyPath:@"position"];
[keyAn setDuration:0.5f];
NSArray *array = [[NSArray alloc] initWithObjects:
[NSValue valueWithCGPoint:CGPointMake(view.center.x, view.center.y)],
[NSValue valueWithCGPoint:CGPointMake(view.center.x-5, view.center.y)],
[NSValue valueWithCGPoint:CGPointMake(view.center.x+5, view.center.y)],
[NSValue valueWithCGPoint:CGPointMake(view.center.x, view.center.y)],
[NSValue valueWithCGPoint:CGPointMake(view.center.x-5, view.center.y)],
[NSValue valueWithCGPoint:CGPointMake(view.center.x+5, view.center.y)],
[NSValue valueWithCGPoint:CGPointMake(view.center.x, view.center.y)],
[NSValue valueWithCGPoint:CGPointMake(view.center.x-5, view.center.y)],
[NSValue valueWithCGPoint:CGPointMake(view.center.x+5, view.center.y)],
[NSValue valueWithCGPoint:CGPointMake(view.center.x, view.center.y)],
nil];
[keyAn setValues:array];
NSArray *times = [[NSArray alloc] initWithObjects:
[NSNumber numberWithFloat:0.1f],
[NSNumber numberWithFloat:0.2f],
[NSNumber numberWithFloat:0.3f],
[NSNumber numberWithFloat:0.4f],
[NSNumber numberWithFloat:0.5f],
[NSNumber numberWithFloat:0.6f],
[NSNumber numberWithFloat:0.7f],
[NSNumber numberWithFloat:0.8f],
[NSNumber numberWithFloat:0.9f],
[NSNumber numberWithFloat:1.0f],
nil];
[keyAn setKeyTimes:times];
[view.layer addAnimation:keyAn forKey:@"TextAnim"];
}