CAAnimation

在ViewController.m中

- (void)viewDidLoad {
    [super viewDidLoad];
    
 
       self.imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tutu.png"]];
    self.imageView.frame = CGRectMake(100, 100, 100, 100);
    [self.view addSubview:self.imageView];

//添加一个计时器,scheduledTimerWithTimeInterval参数代表 多长时间执行一次,
    [NSTimer  scheduledTimerWithTimeInterval:1 target:self selector:@selector(zhuanzhuan) userInfo:nil repeats:YES];

}

-(void)zhuanzhuan{

[UIView  animateWithDuration:1.0f animations:^{

__weak typeof(self)pSelf = self;

//根据nstimer的设置,到这里一秒执行一次旋转,
       //让一个view 按照它的本身的transform 去改变 transform  可以多次执行
         //第一个参数    获取一个view transform
       //第二个参数  旋转的角度
       self.imageView.transform = CGAffineTransformRotate(self.imageView.transform, M_PI/2);

//,同样的缩放也是一秒一次

if (self.imageView.frame.size.width>200) {
           pSelf.imageView.transform = CGAffineTransformScale(pSelf.imageView.transform, 0.5, 0.5);
           NSLog(@"2");
      }else{
      
           pSelf.imageView1.transform = CGAffineTransformScale(pSelf.imageView.transform, 2, 2);
      
           NSLog(@"1");
       }

//从屏幕的四周走一遍

if (pSelf.imageView.frame.origin.x == 0 && pSelf.imageView.frame.origin.y == 0) {
          pSelf.imageView.transform = CGAffineTransformTranslate(pSelf.imageView.transform, pSelf.view.frame.size.width - 200, 0);
       } else if (pSelf.imageView.frame.origin.x == pSelf.view.frame.size.width - 200 && pSelf.imageView.frame.origin.y == 0) {
           pSelf.imageView.transform = CGAffineTransformTranslate(pSelf.imageView.transform, 0, pSelf.view.frame.size.height - 200);
       } else if (pSelf.imageView.frame.origin.x == pSelf.view.frame.size.width - 200 && pSelf.imageView.frame.origin.y == pSelf.view.frame.size.height - 200) {
          pSelf.imageView.transform = CGAffineTransformTranslate(pSelf.imageView.transform, -(pSelf.view.frame.size.width - 200), 0);
      } else {
           pSelf.imageView.transform = CGAffineTransformTranslate(pSelf.imageView.transform, 0, -(pSelf.view.frame.size.height - 200));
       }

}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

[UIView animateWithDuration:1.0f animations:^{
         //设置View的属性为旋转, 就一个参数代表旋转的角度 ,仅仅只是旋转一下,
     //  self.imageView.transform = CGAffineTransformMakeRotation(M_PI /4);
          //设置View的属性为缩放, 分别代表的是X方向 y方向放大的范围 ,缩放一下
        // self.imageView1.transform = CGAffineTransformMakeScale(2, 2);
         //设置View的transform为平移 两个参数 分别代表X方向 y方向, 平移的范围+ 和一切代表方向 平移一下
         self.imageView1.transform = CGAffineTransformMakeTranslation(100, 100);
         
         
        
         
     }];

}

时间: 2024-11-08 14:28:29

CAAnimation的相关文章

CoreAnimation - CAAnimation 动画

之前介绍的是UIView 的动画(http://www.cnblogs.com/loying/p/5122253.html),这次介绍的是CAAnimation的动画. 在xcode中打开 CAAnimation.h ,可以看到以下几个类: CAAnimation. CAPropertyAnimation CABasicAnimation CAKeyframeAnimation CASpringAnimation CATransition CAAnimationGroup https://git

【iOS开发每日小笔记(十二)】仿Facebook登录界面 错误提示抖动 利用CAAnimation设置动画效果

这篇文章是我的[iOS开发每日小笔记]系列中的一片,记录的是今天在开发工作中遇到的,可以用很短的文章或很小的demo演示解释出来的小心得小技巧.它们可能会给用户体验.代码效率得到一些提升,或是之前自己没有接触过的技术,很开心的学到了,放在这里得瑟一下.90%的作用是帮助自己回顾.记忆.复习. 原本以为国庆假期可以有时间看看书,写写博客.实际上大部分时间都被赶场参加婚礼和到处去亲戚家串门吃饭所占用.眼看明天还剩最后一天时间,今天赶紧来更新一篇,也算是没有完全荒废这7天长假吧! Facebook的客

iOS-CALayer && CAAnimation

一.CALayer 1.CALayer CALayer属于QuartzCore.framework框架,从Xcode5起我们不必要手动导入这个库. CALayer我们可以简单理解为一个层.当我们绘制的UIView能在屏幕显示,其实质是因为这个层. 我们下面通过代码理解一下CALayer的基本用法. CALayer *caLayer = [CALayer layer]; caLayer.backgroundColor = [UIColor cyanColor].CGColor; caLayer.f

iOS:核心动画的详解介绍:CAAnimation(抽象类)及其子类

核心动画的详解介绍:CAAnimation(抽象类) 1.核心动画基本概念 Core Animation是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍! 使用它需要先添加QuartzCore.framework和引入对应的框架<QuartzCore/QuartzCore.h> ,在iOS7中不需要 2.动画分类 基本动画    CABasicAnimation 关键帧动画  CAKeyframeAnimation 动画组     CAAnimationGro

iOS 核心动画CAAnimation介绍

CAAnimation 的继承结构 CAAnimation是所有动画的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,要使用它的字类 1.duration:动画持续的时间 2.repeatCount:动画重复的此时,无限循环可以设置成HUGE_VALF或MAXFLOAT 3.repeatDuriation:重复时间 4.removedOnCompletion:默认为YES,代表动画完毕后就从图层上移除,图层会恢复到动画执行前的状态,如果想要动画保持结束后的状态,就将该属性设为NO,

CAAnimation四种动画

在上一篇专题中我们提到,CAAnimation可分为以下四种: 1 2 3 4 5 6 7 8 1.CABasicAnimation 通过设定起始点,终点,时间,动画会沿着你这设定点进行移动.可以看做特殊的CAKeyFrameAnimation 2.CAKeyframeAnimation Keyframe顾名思义就是关键点的frame,你可以通过设定CALayer的始点.中间关键点.终点的frame,时间,动画会沿你设定的轨迹进行移动 3.CAAnimationGroup Group也就是组合的

核心动画 CAAnimation 进阶

转载自:http://www.cofcool.net/development/2015/06/20/ios-study-note-nine-CoreAnimation/ Core Animation,即为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能.Core Animation可以用在Mac OS X和iOS平台.Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程.要注意的

再谈CAAnimation动画

CAAnimaton动画分为CABasicAnimation & CAKeyframeAnimation CABasicAnimation动画, 顾名思义就是最基本的动画, 老规矩先上代码: //1.先创建一个要执行动画的View UIView *actView = ({ UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)]; view.backgroundColor = [UIColor red

ios CAAnimation &#160;实现push效果显示模态控制器(presentViewController)

1,使用 CAAnimation 实现模态控制器的push效果, // 要显示的控制器 BusinessWebController * businessVC = [[BusinessWebController alloc] init];/*** addSubView的方式*/// [mainVC addChildViewController:businessVC];//        [mainVC.view addSubview:businessVC.view];/// 在view的layer

iOS开发CAAnimation详解

Core Animation,即为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能.Core Animation可以用在Mac OS X和iOS平台.Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程.要注意的是,Core Animation是直接作用在CALayer上的,并非UIView. 1. 使用步骤 使用它需要先添加QuartzCore.framework框架和引入主头