- (void)keyFramAnimation {
//关键帧动画
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"position.x"];
animation.duration = 0.3;
//配置关键帧每一帧的值
animation.values = @[@160,@150,@150,@170,@160];
// animation.path
//配置关键帧每一帧起始时间,范围 0 - 1
animation.keyTimes = @[@0.0,@(1/6),@(3/6),@(5/6),@1.0];
//配置关键帧每一帧之间的线性变换
// animation.timingFunctions = @[
// [CAMediaTimingFunction functionWithName:
// kCAMediaTimingFunctionEaseInEaseOut],
// [CAMediaTimingFunction functionWithName:
// kCAMediaTimingFunctionEaseInEaseOut],
// [CAMediaTimingFunction functionWithName:
// kCAMediaTimingFunctionEaseInEaseOut],
// [CAMediaTimingFunction functionWithName:
// kCAMediaTimingFunctionEaseInEaseOut],
// ];
[self.view.layer addAnimation:animation forKey:@"position"];
}
输入验证失败的抖动效果:
- (void)animation {
UITextField *name = (UITextField *)[self.view viewWithTag:10];
CAKeyframeAnimation *kayFram = [CAKeyframeAnimation animationWithKeyPath:@"position"];
kayFram.duration = 0.1;
kayFram.repeatCount = 3;
UIBezierPath *path = [[UIBezierPath alloc]init];
[path moveToPoint:name.center];
[path addLineToPoint:CGPointMake(name.center.x - 5,name.center.y)];
[path addLineToPoint:CGPointMake(name.center.x + 5,name.center.y)];
[path closePath];
kayFram.path = path.CGPath;
[path release];
[name.layer addAnimation:kayFram forKey:@"position"];
}