動畫效果

核心動畫(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;對象

相關文章
相關標籤/搜索