动画效果

核心动画(Core Animation)框架

 

lCore Animation是一组很是强大的动画处理API,使用它能作出很是炫丽的动画效果,并且每每是事半功倍,使用它须要先添加QuartzCore.framework和引入对应的框架<QuartzCore/QuartzCore.h>
开发步骤:
①初始化一个动画对象(CAAnimation)并设置一些动画相关属性
②添加动画对象到层(CALayer)中,开始执行动画
CALayer中不少属性均可以经过CAAnimation实现动画效果,包括:opacity、position、transform、bounds、contents等(能够在API文档中搜索:CALayer Animatable Properties)
经过调用CALayer的addAnimation:forKey增长动画到层(CALayer)中,这样就能触发动画了。经过调用removeAnimationForKey能够中止层中的动画
Core Animation的动画执行过程都是在后台操做的,不会阻塞主线程

 

Animation:函数

全部动画对象的父类,负责控制动画的持续时间和速度,是个抽象类,不能直接使用,应该使用它具体的子类
属性解析:(红色表明来自CAMediaTiming协议的属性)
duration:动画的持续时间
repeatCount:动画的重复次数
repeatDuration:动画的重复时间
removedOnCompletion:默认为YES,表明动画执行完毕后就从图层上移除,图形会恢复到动画执行前的状态。若是想让图层保持显示动画执行后的状态,那就设置为NO,不过还要设置fillMode为kCAFillModeForwards
fillMode:决定当前对象在非active时间段的行为.好比动画开始以前,动画结束以后
beginTime:能够用来设置动画延迟执行时间,若想延迟2s,就设置为CACurrentMediaTime()+2,CACurrentMediaTime()为图层的当前时间
timingFunction:速度控制函数,控制动画运行的节奏
delegate:动画代理
 
CATransition
CAAnimation的子类,用于作转场动画,可以为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点
UINavigationController就是经过CATransition实现了将控制器的视图推入屏幕的动画效果
属性解析:
type:动画过渡类型
subtype:动画过渡方向
startProgress:动画起点(在总体动画的百分比)
endProgress:动画终点(在总体动画的百分比)
 
 
过渡效果

 fade     //交叉淡化过渡(不支持过渡方向) kCATransitionFade
 push     //新视图把旧视图推出去  kCATransitionPush动画

 moveIn   //新视图移到旧视图上面   kCATransitionMoveIn
 reveal   //将旧视图移开,显示下面的新视图  kCATransitionReveal
 cube     //立方体翻滚效果
 oglFlip  //上下左右翻转效果
 suckEffect   //收缩效果,如一块布被抽走(不支持过渡方向)
 rippleEffect //滴水效果(不支持过渡方向)
 pageCurl     //向上翻页效果
 pageUnCurl   //向下翻页效果
 cameraIrisHollowOpen  //相机镜头打开效果(不支持过渡方向)
 cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)
 
 
过分方向:
 kCATransitionFromRight
 kCATransitionFromLeft
 kCATransitionFromBottom

 kCATransitionFromTop
 
 
 
•CATransition的使用

CATransition *anim = [CATransition animation];url

anim.type = @“cube”; // 动画过渡类型spa

anim.subtype = kCATransitionFromTop; // 动画过渡方向线程

anim.duration = 1; // 动画持续1s代理

// 代理,动画执行完毕后会调用delegate的animationDidStop:finished:orm

anim.delegate = self;对象

相关文章
相关标签/搜索