UIView动画
一、commitAnimations方式使用UIView动画
1、commitAnimations方式使用UIView动画
[UIView beginAnimations:@"animation" context:nil]; //UIView开始动画,第一个参数是动画的标识,第二个参数附加的应用程序信息用来传递给动画代理消息
2、延时动画时间(秒)
[UIView setAnimationDuration:1]; //动画持续时间(秒)
3、设置动画曲线,控制动画速度
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
4、设置动画方式,并指出动画发生的位置
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES]; 
5、 设置动画代理
[UIView setAnimationDelegate:self];
6、 动画结束后调用的方法,注意设置次方法之前要先设置代理
[UIView setAnimationDidStopSelector:@selector(stop)];
7、 提交动画
[UIView commitAnimations];
二、交换本视图控制器中2个view位置
1、创建动画
[UIView beginAnimations:@"animation" context:nil];
2、动画持续时间
[UIView setAnimationDuration:1];
3、动画曲线
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
4、交换位置
[UIView setAnimationTransition:UIViewAnimationTransitionCurlDown forView:self.view cache:YES];
[self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];//交换位置
5、在commitAnimations消息之前,可以设置动画完成后的回调,设置方法是:
[UIView setAnimationDidStopSelector:@selector(animationFinish:)];
三、使用:CATransition
1、创建动画
CATransition *ansition = [CATransitionanimation];
2、动画持续时间
ansition.duration = 2;
3、 动画循环次数
ansition.repeatCount = 2;
4、 设置动画类型
ansition.type = @"cameraIrisHollowOpen";
5、 设置动画方向
ansition.subtype = kCATransitionFromLeft;
6、设置动画代理
ansition.delegate = self;
7、替换
[self.view exchangeSubviewAtIndex:1 withSubviewAtIndex:0];
8、添加动画
[view.layeraddAnimation:ansition forKey:@"12"];
9、animateWithDuration
[UIView animateWithDuration:1 animations:^{
         //要执行的操作
         _view.frame = CGRectMake(20, 140, 200, 100);
        }];
       [UIView animateWithDuration:1 animations:^{
            //要执行的操作
        } completion:^(BOOL finished) {
            动画结束
        }];
(1)transition.type 的类型可以有
 淡化、推挤、揭开、覆盖
NSString * const kCATransitionFade;
NSString * const kCATransitionMoveIn;
NSString * const kCATransitionPush;
NSString * const kCATransitionReveal;
 
(2)transition.subtype
 也有四种
NSString * const kCATransitionFromRight;
NSString * const kCATransitionFromLeft;
NSString * const kCATransitionFromTop;
NSString * const kCATransitionFromBottom;
(3)私有的类型的动画类型:
animation.type = @”cube”
animation.type = @”suckEffect”
animation.type = @”oglFlip”//没有方向
animation.type = @”rippleEffect”
animation.type = @”pageCurl”
animation.type = @”pageUnCurl”
animation.type = @”cameraIrisHollowOpen”
animation.type = @”cameraIrisHollowClose”
 
四、具体代码
- (void)viewDidLoad {
    [super viewDidLoad];
    UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn1.frame = CGRectMake(50, 50, 100, 30);
    //btn1.backgroundColor = [UIColor blackColor];
    [btn1 setTitle:@"动画一" forState:UIControlStateNormal];
    [btn1 setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
    [btn1 addTarget:self action:@selector(btn1) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn1];
   
    UIButton *btn2 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn2.frame = CGRectMake(120, 50, 100, 30);
    [btn2 setTitle:@"动画二" forState:UIControlStateNormal];
    [btn2 setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
    [btn2 addTarget:self action:@selector(btn2) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn2];
   
    UIButton *btn3 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn3.frame = CGRectMake(190, 50, 100, 30);
    [btn3 setTitle:@"动画三" forState:UIControlStateNormal];
    [btn3 setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
    [btn3 addTarget:self action:@selector(btn3) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn3];
   
    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(375/2.0-50, 300, 100, 100)];
    view.tag = 1;
    view.backgroundColor = [UIColor greenColor];
    [self.view addSubview:view];
}

-(void)btn1{
    UIView *view = [self.view viewWithTag:1];
    [UIView beginAnimations:@"1" context:nil];//创建动画
    [UIView setAnimationCurve:UIViewAnimationCurveEaseIn];//动画曲线
    [UIView setAnimationDelay:0];//延时动画
    [UIView setAnimationDuration:2];//动画持续时间
    [UIView setAnimationRepeatCount:2];//动画循环次数
    [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:view cache:YES];//设置动画效果,以及要执行的view(动画发生位置,此处是view)
    [UIView setAnimationDelegate:self];//设置动画代理
    [UIView setAnimationDidStopSelector:@selector(stop)];//动画结束后调用的方法,注意设置次方法之前要先设置代理
    [UIView commitAnimations];//提交动画
   
}
-(void)btn2{
    UIView *view = [self.view viewWithTag:1];
    CATransition *ansition = [CATransition animation];//创建动画
    ansition.duration = 2;//动画持续时间
    //ansition.repeatCount = 2;//动画循环次数
    ansition.type = @"cameraIrisHollowOpen";//设置动画类型
    ansition.subtype = kCATransitionFromLeft;//设置动画方向
    ansition.delegate = self;//设置动画代理
    [view.layer addAnimation:ansition forKey:@"12"];//添加动画
   
}
-(void)btn3{
    UIView *view = [self.view viewWithTag:1];
    CGPoint center = view.center;
    //放大效果
//    [UIView animateWithDuration:1 animations:^{
//        view.frame = CGRectMake(10, 10, 300, 300);
//        view.center = center;
//       
//    }];
    //放大缩小连续
    [UIView animateWithDuration:1 animations:^{
        view.frame = CGRectMake(10, 10, 300, 300);
        view.center = center;
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:1 animations:^{
            view.frame = CGRectMake(375/2.0, 300, 100, 100);
            view.center = center;
        } completion:^(BOOL finished) {
            [self btn3];//添加动画
        }];
    }];
   
    //实现缩小和放大

    [UIView animateWithDuration:1 delay:1 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
        view.frame = CGRectMake(10, 10, 300, 300);
        view.center = center;
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:1 animations:^{
            view.frame = CGRectMake(375/2.0, 300, 100, 100);
            view.center = center;
        }completion:^(BOOL finished) {
            [self btn3];
        }];
    }];
   
}

-(void)stop1{
    NSLog(@"动画停止");
}
-(void)animationDidStart:(CAAnimation *)anim{
    NSLog(@"动画开始");

}

UIView动画的更多相关文章

  1. 转一篇简洁的UIView动画编程方法

    iOS  中的 UIView 动画编程其实还是很简单的,像 CSS3 一样,在给定的时间内完成状态连续性的变化呈现.比如背景色,Frame 大小,位移.翻转,特明度等. 以前我使用的编程方式都是用下面 ...

  2. UIView动画效果

    做出UI界面,实现程序功能,是重中之重,但是通过动画提升使用体验,一般人应该不会拒绝吧. 那么问题又来了,怎么做? 一: 稳扎稳打: 一步一步来吧,毕竟,心急吃不了热豆腐. 1.开启一个动画 2,设置 ...

  3. 核心动画和UIView动画的区别

    核心动画和UIView动画的区别 1.核心动画制作用在Layer 2.核心动画的修改的属性都是假象,他的真实位置没有发生变化()

  4. 个人学习对UIView动画的总结

    我的博客之前已经开通五个月了,但是一直没有写东西.一是不敢写,二是也不知道写啥.毕竟是一个刚刚入行大半年的菜鸟,现在总想通过各种办法提高自己.之前总感觉用到一些东西,只是当时搞懂了一点,加上并没有总结 ...

  5. UIView动画学习笔记

    UIView的动画是通过修改控件的属性来达到动画的效果,如:渐变, 移动. 废话不多说,直接上代码: - (void)loadView{ [super loadView]; _leftView = [ ...

  6. iOS动画篇:UIView动画

    iOS的动画效果一直都很棒很,给人的感觉就是很炫酷很流畅,起到增强用户体验的作用.在APP开发中实现动画效果有很多种方式,对于简单的应用场景,我们可以使用UIKit提供的动画来实现. UIView动画 ...

  7. iOS之UIview动画

    一.UIView动画(首尾) 1.简单说明 UIKit直接将动画集成到UIView类中,当内部的一些属性发生改变时,UIView将为这些改变提供动画支持 执行动画所需要的工作由UIView类自动完成, ...

  8. iOS - UIView 动画

    1.UIView 动画 核心动画 和 UIView 动画 的区别: 核心动画一切都是假象,并不会真实的改变图层的属性值,如果以后做动画的时候,不需要与用户交互,通常用核心动画(转场). UIView ...

  9. iOS 动画总结—UIView动画

    1.概述 UIKit直接将动画集成到UIView类中,实现简单动画的创建过程.UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持. 执行动画所需要 ...

随机推荐

  1. 经典的找不到符号(symbol)错误 #iOS开发

    使用BmobSDK的过程中,编译时出现了以下错误信息,意思是 -[BmobSRWebSocket _innerPumpScanner] 这个方法引用了 "_utf8_nextCharSafe ...

  2. C/C++入门基础----指针(1)

    指针其实就是一个变量, 和其他类型的变量一样.在32位计算机上, 指针占用四字节的变量.指针与其他变量的不同就在于它的值是一个内存地址,指向内存的另外一个地方, 指针能够直接访问内存和操作底层的数据, ...

  3. 【译】RabbitMQ:工作队列(Work Queue)

    在第一篇我们写了两个程序通过一个命名的队列分别发送和接收消息.在这一篇,我们将创建一个工作队列在多个工作线程间分发耗时的工作任务. 工作队列的核心思想是避免立刻处理资源密集型任务导致必须等待其执行完成 ...

  4. iOS修改button的点击范围

    一般来说,按钮的点击范围是跟按钮的大小一样的.若按钮很小时,想增大点击区域,网上通用的方法有①设置btn图片setImage,然后将btn的size设置的比图片大②在btn上添加一个比较大的透明btn ...

  5. $.each与$().each

    在jquery中,遍历对象和数组,经常会用到$().each和$.each(),两个方法.两个方法是有区别的,从而这两个方法在针对不同的操作上,显示了各自的特点. $().each,对于这个方法,在d ...

  6. linux操作系统-memcache安装

    安装配置 1. 安装libevent # tar zxf libevent-1.4.6-stable.tar.gz # cd libevent-1.4.6-stable # ./configure # ...

  7. sql数据查询,在程序中较慢,在MS SQL2005 Management Studio中速度快,情况分析及解决

    这两天遇到一个问题,在.net开发的网站,执行sql查询,从sql profiler中监控卡看,执行时间22s. 但是拷出的sql在Management Studio中直接执行,时间仅4ms. 解决方 ...

  8. Servlet目录

    Servlet目录   课时1 Servlet概述12:30 课时2 servlet的第一个例子31:08 课时3 servlet的生命周期18:18 课时4 HttpServlet详细讲解31:43 ...

  9. composer 安装

    安装composer wget http://curl.haxx.se/ca/cacert.pem curl -sS https://getcomposer.org/installer | php - ...

  10. css总集

    1 font-style normal 正常显示 italic 斜体 百分比 字体大小 font-size 像素 字体大小 font-family 字体名称 设置字体名称 letter-spacing ...