简单的动画
来源:互联网 发布:数据移植测试 编辑:程序博客网 时间:2024/06/05 08:21
在ios开发中一般用到的基础动画有以下几种,所有的动画参数配置大致相同,但是有时候在开发过程中很少这样配置一般使用代码块比较方便,而且代码也比较简单以下是常用基础动画类型的一个配置
他全部用的原来的写法,没用block,可以自行调整.
#pragma mark -- Action methods- (void)transitionAnimation// 转场动画{//设置动画名称,方便代理方法判断是哪个动画[UIView beginAnimations:@"TransitionAnimation" context:NULL];//设置动画时长[UIView setAnimationDuration:3.0];//设置动画的变化规律 --有以下4中枚举值//UIViewAnimationCurveEaseInOut, 开始和结束减速// slow at beginning and end//UIViewAnimationCurveEaseIn,// slow at beginning//UIViewAnimationCurveEaseOut, // slow at end//UIViewAnimationCurveLinear 匀速[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];// 对View设置转场动画方向 有以下枚举方向//typedef NS_ENUM(NSInteger, UIViewAnimationTransition) {//UIViewAnimationTransitionNone,//UIViewAnimationTransitionFlipFromLeft,//UIViewAnimationTransitionFlipFromRight,//UIViewAnimationTransitionCurlUp,//UIViewAnimationTransitionCurlDown,//};[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:_view cache:NO];// 对View设置初始状态 并对其他进行配置(这里只是让View变成之前的参数而已,如果不需要就可以去掉这段代码)[_view setTransform:CGAffineTransformIdentity];[_view setBackgroundColor:[UIColor blackColor]];[_view setAlpha:1];[_view setCenter:CGPointMake(50, 50)];// 设置代理[UIView setAnimationDelegate:self];// 动画结束执行代理方法(这里走得时代理方法也可以走其他动画方法就可以形成动画组)[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];//动画结束[UIView commitAnimations];}- (void)changeAlphaAnimation //改变透明度动画{[UIView beginAnimations:@"ChangeAlphaAnimation" context:NULL];[UIView setAnimationDuration:2.0];[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];[_view setAlpha:0.2];[UIView setAnimationDelegate:self];[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];[UIView commitAnimations];}- (void)changeColorAnimation // 改变颜色动画{[UIView beginAnimations:@"ChangeColorAnimation" context:NULL];[UIView setAnimationDuration:2.0];[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];[_view setBackgroundColor:[UIColor redColor]];[UIView setAnimationDelegate:self];[UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)];[UIView commitAnimations];}- (void)rotationAnimation // 旋转动画{[UIView beginAnimations:@"RotationAnimation" context:NULL];[UIView setAnimationDuration:2.0];[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];[_view setTransform:CGAffineTransformRotate(_view.transform, M_PI_4)];[UIView setAnimationDelegate:self];[UIView setAnimationDidStopSelector:@selector(changeColorAnimation)];[UIView commitAnimations];}- (void)scareAnimation //放大缩小动画{[UIView beginAnimations:@"ScareAnimation" context:NULL];[UIView setAnimationDuration:2.0];[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];[UIView setAnimationDelegate:self];[_view setTransform:CGAffineTransformScale(_view.transform, 2, 2)];[UIView setAnimationDidStopSelector:@selector(rotationAnimation)];[UIView commitAnimations];
// 同样 的放大缩小 ,一定要在 finish 是 回复原来的大小,不然下次就看不到动画了
[UIView animateWithDuration:0.5 animations:^{
[UIView setAnimationRepeatCount:2];
_image.transform = CGAffineTransformMakeScale(1.2, 1.2) ;
} completion:^(BOOL finished) {
_image.transform = CGAffineTransformMakeScale(1, 1) ;
}];
}- (void)positionAnimation //位移动画{[UIView beginAnimations:@"PositionAnition" context:NULL];[UIView setAnimationDuration:2.0];[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];[UIView setAnimationDelegate:self];_view.center = CGPointMake(CGRectGetMidX(self.view.bounds), CGRectGetMidY(self.view.bounds));[UIView setAnimationDidStopSelector:@selector(scareAnimation)];[UIView commitAnimations];}// 代理方法,检测动画介绍然后进行其他操作 还有其他两个方法- (void)animationDidStop:(NSString *)animationId finished:(NSNumber *)finished context:(void *)context{// 判断是哪个动画 然后执行相应操作if ([animationId isEqualToString:@"ChangeColorAnimation"]) {[self changeAlphaAnimation];}if ([animationId isEqualToString:@"ChangeAlphaAnimation"]) {[self transitionAnimation];}}
下面我们来看下代码块的用法,代码块的话用起来很方便并且可以执行回调,在APP点击菜动态单切换两个View或是其他动画
<pre name="code" class="objc">[UIView animateWithDuration:0.5 animations:^{[UIView setAnimationDelay:0.8];//配置动画时延_currentView.center = CGPointMake(X,Y);//可以对多个view进行我们想要的动画配置newView.center = CGPointMake(X,Y); } completion:^(BOOL finished) {//执行完后走这里的代码块 }];
0 0
- 编写简单的动画
- 窗口的简单动画
- 简单的弹跳动画
- 制作简单的动画
- 简单的动画
- 简单的Tween动画
- 动画的简单介绍
- imageView简单的动画
- 简单的跌落动画
- IOS简单的动画
- 简单的动画播放
- UIView的简单动画
- WPF 简单的动画
- ios 的简单动画
- 简单的动画
- 动画的简单使用
- 动画的简单应用
- UIView的简单动画
- swift 搜索框(UISearchBar)实现简单的搜索功能(swift3)
- Android studio 使用Grandle进行分渠道打包
- spring-mvc整合jquery cropper图片裁剪插件
- C语言直接对数据加密解密
- Error:(142, 34) java: -source 1.6 中不支持 multi-catch 语句 (请使用 -source 7 或更高版本以启用 multi-catch 语句)
- 简单的动画
- Cobertura的使用
- Java:如何直接创建内部类对象
- Android.mk覆盖替换LOCAL_OVERRIDES_PACKAGES
- ALSM_EXCEL_TO_INTERNAL_TABLE 多sheet 操作
- C# int与string互相转换及数组转换
- 怎么样可以把word转换成pdf格式
- CAS4.0关联mysql数据库
- Canvas图像处理