CoreAnimation

一类咧、CoreAnimation的介紹


Core Animation是一組非常強大的動畫處理API,使用它能做出非常絢麗的動畫效果,而且往往是事半功倍,使用它需要添加QuartzCore.framework和引入對應(yīng)的框架<QuartzCore/QuartzCore.h> .


二、CoreAnimation 的動畫對象CAAnimation

  1. CAPropertyAnimationCAAnimation的子類飞醉,也是個抽象類膀跌,要想創(chuàng)建動畫對象遭商,應(yīng)該使用它的兩個子類:CABasicAnimationCAKeyframeAnimation.
    keyPath:CoreAnimation 的 keyPath 是針對layer的屬性來的,凡是屬性備注最后又Animatable的都能用來當(dāng)做動畫屬性
    常用的動畫屬性如下表
屬性 注釋
bounds 尺寸
position 位置
zPosition z軸位置
anchorPoint 錨點
anchorPointZ z軸錨點
hidden 隱藏
borderWidth 邊框?qū)挾?/td>
borderColor 邊框顏色
cornerRadius 圓角
opacity 透明度
shadowColor 陰影顏色
shadowOffset 陰影偏移
shadowOpacity 陰影透明度
shadowRadius 陰影圓角
transform transform.translation.x(y, z) 平移 transform.scale.x(y, z)縮放 transform.rotation.x(y, z) 旋轉(zhuǎn)捅伤,z軸的動畫劫流,在沒有設(shè)置透視效果的情況下看不到,所以一般不用,要看到z軸的動畫一般直接用transfrom來做在keyPath,并設(shè)置CATransform3D結(jié)構(gòu)體對象的m34屬性
strokeEnd CAShapeLayer(終點)
strokeStart CAShapeLayer(起點)
colors CAGradientLayer(漸變色數(shù)組)
locations CAGradientLayer(漸變色位置數(shù)組)
startPoint CAGradientLayer(開始位置凡蚜,默認是0.5暑始,0)
endPoint CAGradientLayer(結(jié)束位置,默認是0.5,1)
instanceCount CAReplicatorLayer(復(fù)制數(shù))
instanceTransform CAReplicatorLayer(賦值層形變)
  • CABasicAnimation:根據(jù)keyPath設(shè)置layer動畫的起始位置和結(jié)束位置,實現(xiàn)單步動畫
  • CAKeyframeAnimation:有多個變化組合而成的動畫
    CAKeyframeAnimation的屬性設(shè)置,CABasicAnimation可以看成是values數(shù)組中只包含兩個元素的CAKeyframeAnimation
    @property(nullable, copy) NSArray *values;
    @property(nullable) CGPathRef path;
    @property(nullable, copy) NSArray<NSNumber *> *keyTimes;
    @property(nullable, copy) NSArray<CAMediaTimingFunction *> *timingFunctions;
  1. CAAnimationGroup:由多個基本動畫組成的動畫組我抠,設(shè)置其@property(nullable, copy) NSArray<CAAnimation *> *animations;屬性來組合動畫
  2. CATransition:轉(zhuǎn)場動畫

CATransition的屬性設(shè)置和說明

    @property(copy) NSString *type;    // 轉(zhuǎn)場類型
    kCATransitionFade
    kCATransitionMoveIn
    kCATransitionPush
    kCATransitionReveal
    @property(nullable, copy) NSString *subtype;  // 轉(zhuǎn)場方向
    kCATransitionFromRight
    kCATransitionFromLeft
    kCATransitionFromTop
    kCATransitionFromBottom

CATransition還可以用來給UIImageView,UILabel等實現(xiàn)轉(zhuǎn)場動畫袜茧,在他們改變圖片菜拓,文字,字體惫周,顏色的時候尘惧,非常實用


三、CAAnimation 的常用屬性

以下屬性是給CAAnimation設(shè)置動畫效果的

  • 1.duration:動畫的持續(xù)時間
  • 2.repeatCount:重復(fù)次數(shù)递递,無限循環(huán)可以設(shè)置HUGE_VALF或者MAXFLOAT
  • 3.removedOnCompletion:默認為YES喷橙,代表動畫執(zhí)行完畢后就從圖層上移除啥么,圖形會恢復(fù)到動畫執(zhí)行前的狀態(tài)。如果想讓圖層保持顯示動畫執(zhí)行后的狀態(tài)贰逾,那就設(shè)置為NO悬荣,不過還要設(shè)置fillModekCAFillModeForwards,但在實質(zhì)上疙剑,圖層的屬性值還是動畫執(zhí)行前的初始值氯迂,并沒有真正被改變。
  • 4.fillMode:決定當(dāng)前對象在非active時間段的行為
    kCAFillModeRemoved, // 這個是默認值言缤,也就是說當(dāng)動畫開始前和動畫結(jié)束后嚼蚀,動畫對layer都沒有影響,動畫結(jié)束后管挟,layer會恢復(fù)到之前的狀態(tài)
    kCAFillModeForwards, // 當(dāng)動畫結(jié)束后轿曙,layer會一直保持著動畫最后的狀態(tài)
    kCAFillModeBackwards // 在動畫開始前,只需要將動畫加入了一個layer僻孝,layer便立即進入動畫的初始狀態(tài)并等待動畫開始导帝。
    kCAFillModeBoth // 這個其實就是上面兩個的合成.動畫加入后開始之前,layer便處于動畫初始狀態(tài)穿铆,動畫結(jié)束后layer保持動畫最后的狀態(tài)
  • 5.timingFunction:速度控制函數(shù)您单,控制動畫運行的節(jié)奏
    kCAMediaTimingFunctionLinear(線性), // 勻速,給你一個相對靜態(tài)的感覺
    kCAMediaTimingFunctionEaseIn(漸進), // 動畫緩慢進入荞雏,然后加速離開
    kCAMediaTimingFunctionEaseOut(漸出) // 動畫全速進入虐秦,然后減速的到達目
    kCAMediaTimingFunctionEaseInEaseOut(漸進漸出) // 動畫緩慢的進入,中間加速讯檐,然后減速的到達目的地羡疗。這個是默認的動畫行為染服。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末别洪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子柳刮,更是在濱河造成了極大的恐慌挖垛,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秉颗,死亡現(xiàn)場離奇詭異痢毒,居然都是意外死亡,警方通過查閱死者的電腦和手機蚕甥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門哪替,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人菇怀,你說我怎么就攤上這事凭舶∩慰椋” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵帅霜,是天一觀的道長匆背。 經(jīng)常有香客問我,道長身冀,這世上最難降的妖魔是什么钝尸? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮搂根,結(jié)果婚禮上珍促,老公的妹妹穿的比我還像新娘。我一直安慰自己剩愧,他們只是感情好踢星,可當(dāng)我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著隙咸,像睡著了一般沐悦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上五督,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天藏否,我揣著相機與錄音,去河邊找鬼充包。 笑死副签,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的基矮。 我是一名探鬼主播淆储,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼家浇!你這毒婦竟也來了本砰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤钢悲,失蹤者是張志新(化名)和其女友劉穎点额,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體莺琳,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡还棱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了惭等。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片珍手。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出琳要,到底是詐尸還是另有隱情料扰,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布焙蹭,位于F島的核電站晒杈,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏孔厉。R本人自食惡果不足惜拯钻,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望撰豺。 院中可真熱鬧粪般,春花似錦、人聲如沸污桦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凡橱。三九已至小作,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稼钩,已是汗流浹背顾稀。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留坝撑,地道東北人静秆。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像巡李,于是被迫代替她去往敵國和親抚笔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,060評論 2 355

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