您好,登錄后才能下訂單哦!
本周項目進展仍然沒有太大變化,于是接著上周未完成的計劃,開始著手對核心動畫開始做學習了解和記錄。
OS開發(fā)UI篇—核心動畫簡介
一、簡單介紹
Core Animation,中文翻譯為核心動畫,它是一組非常強大的動畫處理API,使用它能做出非常炫麗的動畫效果,而且往往是事半功倍。也就是說,使用少量的代碼就可以實現(xiàn)非常強大的功能。
Core Animation是跨平臺的,可以用在Mac OS X和iOS平臺。
Core Animation的動畫執(zhí)行過程都是在后臺操作的,不會阻塞主線程。不阻塞主線程,可以理解為在執(zhí)行動畫的時候還能點擊(按鈕)。
要注意的是,Core Animation是直接作用在CALayer上的,并非UIView。
二、Core Animation的使用步驟
1.使用它需要先添加QuartzCore.framework框架和引入主頭文件<QuartzCore/QuartzCore.h>(iOS7不需要)
2.初始化一個CAAnimation對象,并設(shè)置一些動畫相關(guān)屬性
3.通過調(diào)用CALayer的addAnimation:forKey:方法增加CAAnimation對象到CALayer中,這樣就能開始執(zhí)行動畫了
4.通過調(diào)用CALayer的removeAnimationForKey:方法可以停止CALayer中的動畫
三、CAAnimation
類的繼承結(jié)構(gòu)圖
補充說明
所有動畫對象的父類,負責控制動畫的持續(xù)時間和速度,是個抽象類,不能直接使用,應(yīng)該使用它具體的子類
屬性解析:(紅色代表來自CAMediaTiming協(xié)議的屬性)
duration:動畫的持續(xù)時間
repeatCount:動畫的重復次數(shù)
repeatDuration:動畫的重復時間
removedOnCompletion:默認為YES,代表動畫執(zhí)行完畢后就從圖層上移除,圖形會恢復到動畫執(zhí)行前的狀態(tài)。如果想讓圖層保持顯示動畫執(zhí)行后的狀態(tài),那就設(shè)置為NO,不過還要設(shè)置fillMode為kCAFillModeForwards
fillMode:決定當前對象在非active時間段的行為.比如動畫開始之前,動畫結(jié)束之后
beginTime:可以用來設(shè)置動畫延遲執(zhí)行時間,若想延遲2s,就設(shè)置為CACurrentMediaTime()+2,CACurrentMediaTime()為圖層的當前時間
timingFunction:速度控制函數(shù),控制動畫運行的節(jié)奏
delegate:動畫代理
以上就是核心動畫的基本介紹,后一篇開始對核心動畫的使用做記錄~
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。