美文网首页ios
左右抖动动画(UIView扩展类)

左右抖动动画(UIView扩展类)

作者: 91阿生 | 来源:发表于2015-09-09 15:37 被阅读346次

左右抖动的动画效果可以应用在登陆界面,当密码或账户输错的时候,可以加入这个效果,也是不错的,虽然low点,但起码也是一种效果.嘿嘿...废话不多说直接上代码.

一、自己创建一个UIView的分类吧,这里我就不多说真么创建了

typedefvoid(^DyAnimationFinished)(void);  //创建一个完成后的代码块

@interfaceUIView (SimpleAnimation)

-(void) shakeWithFinished:(DyAnimationFinished)finished;

@end

@implementationUIView (SimpleAnimation)

// 三个方法实现

/**左右摇摆shake*/

-(void) shakeWithFinished:(DyAnimationFinished)finished{

floatshakeMax_x  = 10;//一次最大摇摆x坐标

floattime  = 0.15;

__weaktypeof(self)weakSelf  = self;

[selfsetMoveX:-shakeMax_xdrution:timefinished:^{ //先往左移动10

[weakSelfsetMoveX:shakeMax_x*2drution:timefinished:^{ //在往有移动20,相当在最原来的位置往右移动了10

[weakSelfsetMoveX:-shakeMax_x*2drution:timefinished:^{ //在往左移动20,相当于在上面的位置往左移动了10

[weakSelfsetMoveX:shakeMax_xdrution:timefinished:^{

if(finished) {  

finished();

}

}];

}];

}];

}];

}

//重新设置x坐标

-(void) setMoveX:(CGFloat)x drution:(NSTimeInterval)time finished:(DyAnimationFinished)finished{

//调用重新设置此控件frame的方法,原来的x加上要移动的x

[selfsetX:(self.frame.origin.x+ x)drution:timefinished:finished];

}

//重新设置此控件frame的方法

-(void) setX:(CGFloat)total_x drution:(NSTimeInterval)time finished:(DyAnimationFinished)finished{

[UIViewanimateWithDuration:timeanimations:^{

CGRectframe  = self.frame;

frame.origin.x =  total_x;

self.frame =  frame;

}completion:^(BOOLf) {

if(finished) {

finished();

}

}];

}

@end

二、这里我在补充一个小技巧,也是适用于登陆或是有输入框的界面的技巧:监听TextField的变化来改变按钮的可点击状态.代码如下:

1、[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(textDidChange)name:UITextFieldTextDidChangeNotificationobject:nil];

2、-(void) textDidChange{

if(_text_user.text.length == 0) {

_button.backgroundColor =  [UIColor lightGrayColor];

_button.userInteractionEnabled=NO;

}else{

_button.backgroundColor= [UIColor orangeColor];

_button.userInteractionEnabled = YES;

}

}

//记得移除监听

-(void) dealloc{

[[NSNotificationCenterdefaultCenter] removeObserver:self];  }

分享出来大家一起来学习!有什么更好的想法可以@我,一起进步!谢谢

相关文章

网友评论

    本文标题:左右抖动动画(UIView扩展类)

    本文链接:https://www.haomeiwen.com/subject/ddkpcttx.html