IOS学习动画一之 UIKit动画

IOS的 普通动画可使用UIKit提供的动画方式;

复杂动画可使用Core Animation。

1、 通过动画上下文使用UIKit动画

-(void)animationOfUIKit  {  
    UIView *redView=[[UIView alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];  
      
    [self.view addSubview:redView];  
    //开始动画  
    [UIView beginAnimations:@"test" context:nil];  
    //动画时长  
    [UIView setAnimationDuration:1];  
    //设置动画淡入淡出  
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; 
    /*  
     *要进行动画设置的地方  
     */  
    redView.backgroundColor=[UIColor blueColor];  
    redView.frame=CGRectMake(50, 50, 200, 200);  
    redView.alpha=0.5;
    //动画结束  
    [UIView commitAnimations];  
}

2、通过代码块使用UIKit动画

-(void)animationOfBlock  {  
    //初始化一个View,用来显示动画  
    UIView *redView=[[UIView alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
    [self.view addSubview:redView];  
  
    [UIView animateWithDuration:1 //时长  
                 delay:0 //延迟时间  
                 options:UIViewAnimationOptionTransitionFlipFromLeft//动画效果  
                 animations:^{
                         //动画设置区域  
                         redView.backgroundColor=[UIColor blueColor];  
                         redView.frame=CGRectMake(50, 50, 200, 200);  
                         redView.alpha=0.5;  
                     } completion:^(BOOL finish){  
                       //动画结束时调用  
                     }];
}

3、UIView的,翻转、旋转,偏移,翻页,缩放,取反的动画效果

CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放、旋转和平移等操作 (另称为 放射变换矩阵),这种动画都是针对视图的原定最初位置的中心点为起始参照进行相应操作的,在操作结束之后可对设置量进行还原:

view.transform=CGAffineTransformIdentity;

翻转的动画

    //开始动画  
   [UIView beginAnimations:@"doflip" context:nil];  
   //设置时常  
   [UIView setAnimationDuration:1];  
   //设置动画淡入淡出  
   [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  
   //设置代理  
   [UIView setAnimationDelegate:self];  
   //设置翻转方向  
   [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:manImageView cache:YES];  
   //动画结束  
   [UIView commitAnimations];

旋转动画

//创建一个CGAffineTransform  transform对象  
CGAffineTransform  transform;   
//设置旋转度数  
transform = CGAffineTransformRotate(manImageView.transform,M_PI/6.0);  
//动画开始  
[UIView beginAnimations:@"rotate" context:nil ];  
//动画时常  
[UIView setAnimationDuration:2];  
//添加代理  
[UIView setAnimationDelegate:self];  
//获取transform的值  
[manImageView setTransform:transform];  
//关闭动画  
[UIView commitAnimations];

偏移动画

[UIView beginAnimations:@"move" context:nil];
[UIView setAnimationDuration:2];
[UIView setAnimationDelegate:self];
//改变它的frame的x,y的值
manImageView.frame=CGRectMake(100,100, 120,100);
[UIView commitAnimations];

翻页动画

[UIView beginAnimations:@"curlUp" context:nil];  
//指定动画曲线类型,该枚举是默认的,线性的是匀速的  
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
//设置动画时常  
[UIView setAnimationDuration:1];  
[UIView setAnimationDelegate:self];  
//设置翻页的方向  
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:manImageView cache:YES];  
//关闭动画  
[UIView commitAnimations];

缩放动画

CGAffineTransform  transform = CGAffineTransformScale(manImageView.transform,1.2,1.2);  
[UIView beginAnimations:@"scale" context:nil];  
[UIView setAnimationDuration:2];  
[UIView setAnimationDelegate:self];  
[manImageView setTransform:transform];  
[UIView commitAnimations];

取反的动画效果是根据当前的动画取他的相反的动画

CGAffineTransform transform = CGAffineTransformInvert(manImageView.transform);  
[UIView beginAnimations:@"Invert" context:nil];  
[UIView setAnimationDuration:2];//动画时常  
[UIView setAnimationDelegate:self];  
[manImageView setTransform:transform];//获取改变后的view的transform  
[UIView commitAnimations];//关闭动画
时间: 2024-11-03 03:30:13

IOS学习动画一之 UIKit动画的相关文章

iOS学习:CAShapeLayer与UIBezierPath动画

CAShapeLayer与UIBezierPath动画: CAShapeLayer与UIBezierPath的动画,就离不开 CABasicAnimation:也将会使用到 strokeEnd.strokeStart.lineWidth 三个属性: 先做一条贝塞尔曲线: UIBezierPath *path = [UIBezierPath bezierPath]; [path moveToPoint:CGPointMake(40, 80)]; [path addCurveToPoint:CGPo

iOS学习笔记10-UIView动画

上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UIView动画封装 一.UIView动画 苹果知道图层动画使用麻烦,就为我们封装到了UIView里,使我们可以简单的实现各种动画效果. 1. 基础动画 主要实现方法为: + (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTime

IOS学习02简单动画

IOS学习第二天,今天做一个简单的动画的小程序! 程序截图如下: 1 这个程序,当点击屏幕左下方4个方向按键的时候,上面的图片就会跟着自动上下左右移动. 2 当点击屏幕右边变大和变小按键时候,上面的图片就会跟着变大和变小. 二 功能就说到这里,下面开始界面和代码说明. 2.1 首先还是先创建项目和设计界面,当然还要把相对应的图片导入项目images.xcassets下.截图如下: 2.2 界面图片和方向键,在这里我都是用Button做的,当然,用别的也可以. 2.3 界面上所以可以点击的按键,我

IOS学习--核心动画

1.CoreAnimation的介绍 Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍.也就是说,使用少量的代码就可以实现非常强大的功能. Core Animation可以用在Mac OS X和iOS平台. Core Animation的动画执行过程都是在后台操作的,不会阻塞主线程. 要注意的是,Core Animation是直接作用在CALayer上的,并非UIView 详细地址:http://www.cnb

iOS学习笔记09-核心动画CoreAnimation

一.CALayer CALayer包含在QuartzCore框架中,具有跨平台性,在iOS中使用Core Animation开发动画的本质是 将CALayer内容转化为位图从而供硬件操作 . 常用属性: 属性 描述 anchorPoint 和中心position重合的点,称为锚点,范围在(0~1,0~1) position 图层中心点位置,相当于UIView的center bounds 图层大小 opacity 透明度,相当于UIView的alpha 创建自定义CALayer: //自定义图层

iOS 7 present/dismiss转场动画

前言 iOS 7以后提供了自定义转场动画的功能,我们可以通过遵守协议完成自定义转场动画.本篇文章讲解如何实现自定义present.dismiss自定义动画. 效果图 本篇文章实现的动画切换效果图如下: 视图切换种类 如下效果图,这是有两大类视图切换动画的,一种是交互式的,另一种就是自定义的. 本篇只讲其中的UIViewControllerAnimatedTransitioning协议,来实现present.dismiss动画效果.另外的几个,后面会继续学习总结!!! 协议 我们要实现presen

iOS Core Animation Advanced Techniques(四):隐式动画和显式动画

隐式动画 按照我的意思去做,而不是我说的. -- 埃德娜,辛普森 我们在第一部分讨论了Core Animation除了动画之外可以做到的任何事情.但是动画师Core Animation库一个非常显著的特性.这一章我们来看看它是怎么做到的.具体来说,我们先来讨论框架自动完成的隐式动画(除非你明确禁用了这个功能). 事务 Core Animation基于一个假设,说屏幕上的任何东西都可以(或者可能)做动画.动画并不需要你在Core Animation中手动打开,相反需要明确地关闭,否则他会一直存在.

iOS开发——动画篇Swift篇&动画效果的实现

Swift - 动画效果的实现 在iOS中,实现动画有两种方法.一个是统一的animateWithDuration,另一个是组合出现的beginAnimations和commitAnimations.这三个方法都是类方法. 一,使用animateWithDuration来实现动画 (1)此方法共有5个参数: duration:动画从开始到结束的持续时间,单位是秒 delay:动画开始前等待的时间 options:动画执行的选项.里面可以设置动画的效果.可以使用UIViewAnimationOpt

iOS动画开发之一——UIViewAnimation动画的使用

iOS动画开发之一--UIViewAnimation动画的使用 一.简介 一款APP的成功与否,除了完善的功能外,用户体验也占有极大的比重,动画的合理运用,可以很好的增强用户体验.iOS开发中,常用的动画处理有UIView动画编程和核心动画编程,其中UIView动画使用简便,开发中应用十分广泛.这篇博客,主要讨论UIView的动画使用. 二.UIView动画的几个方法 + (void)animateWithDuration:(NSTimeInterval)duration animations: