做项目遇到一个需求,就是再输入手机号时如果手机号输入错误,textField要颤抖一下用来警示用户输入错误;网上也找过一些,那些都是封装好的,今天自己找到苹果自带的CAlayer动画可以实现,自己了一个方法;用苹果自带的API实现;
首先导入QuartzCore.framework这个框架,然后在控制器页面导入#import <QuartzCore/QuartzCore.h>
#点击来确定输入内容是否正确
- (void)isValidate
{
if (![textField.text isEqualToString:@"code4app"]) {
[self shakeAnimationForView:textField];
}
}
-(void)shakeAnimationForView:(UIView*)view
{
CALayer *lay_lb = [view layer];
CGPoint pos_lb = [lay_lb position];
CGPoint y = CGPointMake(pos_lb.x-10, pos_lb.y);
CGPoint x = CGPointMake(pos_lb.x+10, pos_lb.y);
CABasicAnimation * animation = [CABasicAnimation animationWithKeyPath:@"position"];
[animation setTimingFunction:[CAMediaTimingFunction
functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[animation setFromValue:[NSValue valueWithCGPoint:x]];
[animation setToValue:[NSValue valueWithCGPoint:y]];
[animation setAutoreverses:YES];
[animation setDuration:0.08];
[animation setRepeatCount:3];
[lay_lb addAnimation:animation forKey:nil];
}