核心动画介绍(转)
?
一.簡單介紹?
Core Animation,中文翻譯為核心動畫,它是一組非常強大的動畫處理API,使用它能做出非常炫麗的動畫效果,而且往往是事半功倍。也就是說,使用少量的代碼就可以實現(xiàn)非常強大的功能。?
Core Animation是跨平臺的,可以用在Mac OS X和iOS平臺。?
Core Animation的動畫執(zhí)行過程都是后臺操作的,不會阻塞主線程。不阻塞主線程,可以理解為在執(zhí)行動畫的時候還能點擊(按鈕)。?
要注意的是,Core Animation是直接作用在CALayer上的,并非UIView。
?
二.Core Animation的使用步驟?
1.使用它需要先添加QuartzCore.framework框架和引入主頭文件。?
2.初始化一個CAAnimation對象,并設置一些動畫相關(guān)屬性。?
3.通過調(diào)用CALayer的addAnimation:forKey:方法增加CAAnimation對象到CALayer中,這樣就能開始執(zhí)行動畫了。?
4.通過調(diào)用CALayer的removeAnimationForKey:方法可以停止CALayer中的動畫。
?
三.CAAnimation? 類的繼承結(jié)構(gòu)圖?
CAAnimation是所有動畫類的父類,但是它不能直接使用,應該使用它的子類。?
常見屬性有:?
duration:動畫的持續(xù)時間?
repeatCount:動畫的重復次數(shù)?
timingFunction:控制動畫運行的節(jié)奏?
說明:?
(1)能用的動畫類只有4個子類:CABasicAnimation,CAKeyframeAnimation,CATransition,CAAnimationGroup。?
(2)CAMediaTiming是一個協(xié)議(protocol)。?
CAPropertyAnimation是CAAnimation的子類,但是不能直接使用,要想創(chuàng)建動畫對象,應該使用它的兩個子類:CABasicAnimation和CAKeyframeAnimation。?
它有個NSStirng類型的keyPath屬性,你可以指定CALayer的某個睡醒名為keyPath,并且對CALayer的這個屬性的值進行修改,達到相應的動畫效果。比如,指定@”position”為keyPath,就會修改CALayer的position屬性的值,以達到平移的效果。
?
四.補充說明?
所有動畫對象的父類,負責控制動畫的持續(xù)時間和速度,是個抽象類,不能直接使用,應該使用它具體的子類。?
屬性解析:?
duration:動畫的持續(xù)時間(CAMediaTiming協(xié)議屬性)?
repeartCount:動畫的重復次數(shù)(CAMediaTiming協(xié)議屬性)?
repeartDuration:動畫的重復時間(CAMediaTiming協(xié)議屬性)?
removedOnCompletion:默認為YES,代表動畫執(zhí)行完畢后就從圖層上移除,圖形會恢復到動畫執(zhí)行前的狀態(tài)。如果想讓圖層保持顯示動畫執(zhí)行后的狀態(tài),那就設置為NO,不過還要設置fillMode為CAFillModeForwards。?
fillMode:決定當前對象在非active時間段的行為。比如動畫開始之前,動畫結(jié)束之后。(CAMediaTiming協(xié)議屬性)?
timingFunction:速度控制函數(shù),控制動畫運行的節(jié)奏。?
delegate:動畫代理。
轉(zhuǎn)載于:https://www.cnblogs.com/jiuyi/p/10104823.html
總結(jié)
- 上一篇: jinja2的url_for 和数据块
- 下一篇: 关于MyEclipse连接SQLServ