Core Animation核心動畫

框架圖.png
  • OpenGL ES是個C語言寫的非常底層的圖形處理框架
    • 是個移動設(shè)備上繪制2D和3D計算機圖形的標準開源庫,廣泛地被用在游戲的圖形繪制上,負責直接驅(qū)動GPU,效率非常高,缺點是使用起來異常復雜。
  • Core Animation是對OpenGL ES的Objective-C封裝
    • 具有與OpenGL ES幾乎等價的高性能,卻隱藏了OpenGL ES的復雜性。
Snip20151029_7.png

一、Core Animation 核心動畫

  • Core Animation可以用在Mac OS X和iOS平臺。
  • Core Animation的動畫執(zhí)行過程都是在后臺操作的,不會阻塞主線程。
  • 還有一點需要注意:Core Animation是直接作用在CALayer上的,并非UIView。

二、Core Animation的使用步驟

  • 注意:如果不是xcode5之后的版本,使用它需要先添加QuartzCore.framework和引入對應(yīng)的框架<QuartzCore/QuartzCore.h>

1、使用步驟

  • 1.首先得有CALayer
  • 2.初始化一個CAAnimation對象,并設(shè)置一些動畫相關(guān)屬性
  • 3.通過調(diào)用CALayer的addAnimation:forKey:方法,添加CAAnimation對象到CALayer中,這樣就能開始執(zhí)行動畫了
  • 4.通過調(diào)用CALayer的removeAnimationForKey:方法可以停止CALayer中的動畫

三、CAAnimation

  • 要想執(zhí)行動畫,就必須初始化一個CAAnimation對象。下面介紹CAAnimation
結(jié)構(gòu)圖.png
  • 核心動畫中所有類都遵守CAMediaTiming

  • 注意:CAAnaimation是個抽象類,不具備動畫效果,CAPropertyAnimation也是個抽象類,本身不具備動畫效果,只有它們的子類才有

可用動畫類 : CAAnimationGroup 、CATransition、CABasicAnimation和CAKeyframeAnimation

  • CAAnimationGroup:動畫組,可以同時進行縮放,旋轉(zhuǎn)等動畫

  • CATransition:轉(zhuǎn)場動畫,界面之間跳轉(zhuǎn)都可以用轉(zhuǎn)場動畫

  • CABasicAnimation:基本動畫,做一些簡單效果

  • CAKeyframeAnimation:幀動畫,做一些連續(xù)的流暢的動畫

四、CAAnimation的常用屬性

 duration:動畫的持續(xù)時間

 repeatCount:動畫的重復次數(shù)

 timingFunction:控制動畫運行的節(jié)奏
  ---> timingFunction可選的值有:
     --- kCAMediaTimingFunctionLinear(線性):勻速,給你一個相對靜態(tài)的感覺
     --- kCAMediaTimingFunctionEaseIn(漸進):動畫緩慢進入,然后加速離開
     --- kCAMediaTimingFunctionEaseOut(漸出):動畫全速進入,然后減速的到達目的地
     --- kCAMediaTimingFunctionEaseInEaseOut(漸進漸出):動畫緩慢的進入,中間加速,然后減速的到達目的地。這個是默認的動畫行為。

delegate:動畫代理(CAAnimationDelegate),用來監(jiān)聽動畫的執(zhí)行過程

    @interface NSObject (CAAnimationDelegate)
    // 動畫開始執(zhí)行的時候觸發(fā)這個方法
    - (void)animationDidStart:(CAAnimation *)anim;

    // 動畫執(zhí)行完畢的時候觸發(fā)這個方法
    - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag;
    @end

4> delegate:動畫代理,用來監(jiān)聽動畫的執(zhí)行過程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容