什么是核心動(dòng)畫(huà)
官網(wǎng)釋義:Render, compose, and animate visual elements.
可以渲染,撰寫(xiě),和動(dòng)畫(huà)視覺(jué)元素
也就是一組功能強(qiáng)大、效果華麗的動(dòng)畫(huà)API
核心動(dòng)畫(huà)有些什么東西
先來(lái)看張圖

1644426-7d5b97696b996ed5.png
emmmmmmm.......英語(yǔ)的有點(diǎn)復(fù)雜,看不懂,換一張吧

1498114752750475.png
還是看不懂。。。。
沒(méi)關(guān)系,不急,我們從頭往下看
-
CAMediaTiming
官網(wǎng)釋義:
Methods that model a hierarchical timing system, allowing objects to map time between their parent and local time
這個(gè)東西翻譯出來(lái)我也不知道什么東西,不過(guò)CAMediaTiming是個(gè)協(xié)議,在這個(gè)協(xié)議中定義了時(shí)間、速度、重復(fù)次數(shù)等等
| 屬性 | 作用 |
|---|---|
| beginTime | 指定接收方相對(duì)于其父對(duì)象(如果適用)的開(kāi)始時(shí)間 |
| duration | 動(dòng)畫(huà)的持續(xù)時(shí)間 |
| speed | 動(dòng)畫(huà)速率,決定動(dòng)畫(huà)時(shí)間的倍率。當(dāng)speed為2時(shí),動(dòng)畫(huà)時(shí)間為設(shè)置的duration的1/2 |
| timeOffset | 動(dòng)畫(huà)時(shí)間偏移量。比如設(shè)置動(dòng)畫(huà)時(shí)長(zhǎng)為3秒,當(dāng)設(shè)置timeOffset為1.5時(shí),當(dāng)前動(dòng)畫(huà)會(huì)從中間位置開(kāi)始,并在到達(dá)指定位置時(shí),走完之前跳過(guò)的前半段動(dòng)畫(huà) |
| repeatCount | 動(dòng)畫(huà)的重復(fù)次數(shù) |
| repeatDuration | 動(dòng)畫(huà)的重復(fù)時(shí)間 |
| autoreverses | 動(dòng)畫(huà)由初始值到最終值后,是否反過(guò)來(lái)回到初始值的動(dòng)畫(huà)。如果設(shè)置為YES,就意味著動(dòng)畫(huà)完成后會(huì)以動(dòng)畫(huà)的形式回到初始值 |
| fillMode | 決定當(dāng)前對(duì)象在非動(dòng)畫(huà)時(shí)間段的行為,官網(wǎng)釋義:確定接收者的演示文稿是否在其活動(dòng)持續(xù)時(shí)間完成后被凍結(jié)或刪除。 |
-
CAAnimation
官網(wǎng)釋義:
The abstract superclass for Core Animation animations
核心動(dòng)畫(huà)的抽象父類(lèi),是所有動(dòng)畫(huà)對(duì)象的父類(lèi),實(shí)現(xiàn)CAMediaTiming協(xié)議,負(fù)責(zé)控制動(dòng)畫(huà)的時(shí)間、速度和時(shí)間曲線(xiàn)等等,是一個(gè)抽象類(lèi),不能直接使用。除了CAMediaTiming協(xié)議中的方法,還增加了CAAnimationDelegate的代理屬性等
| 屬性 | 作用 |
|---|---|
| timingFunction | 控制動(dòng)畫(huà)的節(jié)奏。點(diǎn)開(kāi)框架查看有kCAMediaTimingFunctionLinear (勻速),kCAMediaTimingFunctionEaseIn (慢進(jìn)快出),kCAMediaTimingFunctionEaseOut (快進(jìn)慢出),kCAMediaTimingFunctionEaseInEaseOut (慢進(jìn)慢出,中間加速),kCAMediaTimingFunctionDefault (默認(rèn)),也可通過(guò)自定義創(chuàng)建CAMediaTimingFunction |
| delegate | 代理 |
| removedOnCompletion | 確定完成后動(dòng)畫(huà)是否從目標(biāo)圖層的動(dòng)畫(huà)中刪除。默認(rèn)為YES,也就是動(dòng)畫(huà)執(zhí)行完畢后從圖層上移除,恢復(fù)到執(zhí)行前的狀態(tài),如果設(shè)置為NO,并且設(shè)置fillMode為kCAFillModeForwards,則保持動(dòng)畫(huà)執(zhí)行后的狀態(tài) |
接下來(lái)再往下
-
CAPropertyAnimation
官網(wǎng)釋義:
An abstract subclass of CAAnimation for creating animations that manipulate the value of layer properties
CAAnimation的一個(gè)抽象子類(lèi),用于創(chuàng)建操縱圖層屬性值的動(dòng)畫(huà)。也就是針對(duì)對(duì)象的可動(dòng)畫(huà)屬性進(jìn)行效果的設(shè)置
| 屬性 | 作用 |
|---|---|
| keyPath | 指定接收者動(dòng)畫(huà)的關(guān)鍵路徑 |
| additive | 屬性動(dòng)畫(huà)是否以當(dāng)前動(dòng)畫(huà)效果為基礎(chǔ),默認(rèn)為NO。當(dāng)為YES時(shí),動(dòng)畫(huà)指定的值將被添加到當(dāng)前的動(dòng)畫(huà)上 |
| cumulative | “累積”屬性影響重復(fù)動(dòng)畫(huà)如何產(chǎn)生結(jié)果。 如果為true,則動(dòng)畫(huà)的當(dāng)前值是上一個(gè)循環(huán)周期結(jié)束時(shí)的值,加上當(dāng)前重復(fù)周期的值。 如果為false,則該值只是為當(dāng)前重復(fù)循環(huán)計(jì)算的值。 默認(rèn)為NO。簡(jiǎn)言之就是當(dāng)前動(dòng)畫(huà)是否為累加的效果 |
| valueFunction | 官網(wǎng)釋義:An optional value function that is applied to interpolated values,大意就是可以通過(guò)設(shè)置該屬性來(lái)設(shè)置插入值,如按x軸的輸入值(弧度)旋轉(zhuǎn)的值函數(shù)等等 |
-
CABasicAnimation
官網(wǎng)釋義:
An object that provides basic, single-keyframe animation capabilities for a layer property
為圖層屬性提供基本的單關(guān)鍵幀動(dòng)畫(huà)功能的對(duì)象。也就是通過(guò)keyPath對(duì)應(yīng)屬性進(jìn)行控制,需要設(shè)置fromValue以及toValue
| 屬性 | 作用 |
|---|---|
| fromValue | keyPath相應(yīng)屬性的初始值 |
| toValue | keyPath相應(yīng)屬性的結(jié)束值 |
| byValue | 在不設(shè)置toValue時(shí),toValue = fromValue + byValue,也就是在當(dāng)前的位置上增加多少 |
-
CASpringAnimation
官網(wǎng)釋義:
An animation that applies a spring-like force to a layer's properties
一種將彈簧般的力應(yīng)用于圖層屬性的動(dòng)畫(huà)。也就是帶有初始速度以及阻尼指數(shù)等物理參數(shù)的屬性動(dòng)畫(huà)
下面屬性介紹因?yàn)橐恍傩缘奶厥庑?,這里打個(gè)比方,這個(gè)動(dòng)畫(huà)也就是在不光滑的地面上有一個(gè)彈簧拴著一個(gè)球
| 屬性 | 作用 |
|---|---|
| mass | 官網(wǎng)釋義:The mass of the object attached to the end of the spring 附著在彈簧末端的物體的質(zhì)量 |
| stiffness | 官網(wǎng)釋義:The spring stiffness coefficient 彈簧的剛度系數(shù) |
| damping | 官網(wǎng)釋義:Defines how the spring’s motion should be damped due to the forces of friction 定義彈簧的運(yùn)動(dòng)如何由于摩擦力而被阻尼。 |
| initialVelocity | 官網(wǎng)釋義:The initial velocity of the object attached to the spring 附著在彈簧上的物體的初始速度 |
| settlingDuration | 官網(wǎng)釋義:The estimated duration required for the spring system to be considered at rest. 結(jié)算時(shí)間,根據(jù)上述參數(shù)計(jì)算出的預(yù)計(jì)時(shí)間,相對(duì)于你設(shè)置的時(shí)間,這個(gè)時(shí)間比較準(zhǔn)確 |
這邊看完是不是感嘆當(dāng)初物理沒(méi)有好好學(xué)。。。繼續(xù):
-
CAKeyframeAnimation
官網(wǎng)釋義:
An object that provides keyframe animation capabilities for a layer object
為圖層對(duì)象提供關(guān)鍵幀動(dòng)畫(huà)功能的對(duì)象
重頭戲來(lái)了,平時(shí)老聽(tīng)到別人說(shuō)關(guān)鍵幀動(dòng)畫(huà),一直不知道啥玩意兒,來(lái)這里給你慢慢看:
| 屬性 | 作用 |
|---|---|
| values | 指定用于動(dòng)畫(huà)的關(guān)鍵幀值的對(duì)象數(shù)組 |
| path | 關(guān)鍵幀路徑,動(dòng)畫(huà)進(jìn)行的要素,優(yōu)先級(jí)比values高,但是只對(duì)CALayer的anchorPoint和position起作用 |
| keyTimes | NSNumber對(duì)象的可選數(shù)組,用于定義應(yīng)用給定關(guān)鍵幀段的時(shí)間。也就是每一幀對(duì)應(yīng)的時(shí)間,如果不設(shè)置,則各關(guān)鍵幀平分設(shè)定時(shí)間 |
| timingFunctions | CAMediaTimingFunction對(duì)象的可選數(shù)組,用于定義每個(gè)關(guān)鍵幀段的動(dòng)畫(huà)節(jié)奏 |
| calculationMode | 指定接收器如何計(jì)算中間關(guān)鍵幀值??蚣茏⑨尫g為計(jì)算模式,可以為'線(xiàn)性','離散'等, 當(dāng)設(shè)置為“paced”或“cubicPaced”時(shí),動(dòng)畫(huà)的“keyTimes”和“timingFunctions”屬性將被忽略并隱式計(jì)算 |
| tensionValues | 定義曲線(xiàn)緊密度的NSNumber對(duì)象數(shù)組,動(dòng)畫(huà)張力的控制 |
| continuityValues | 一組NSNumber對(duì)象,用于定義時(shí)間曲線(xiàn)角點(diǎn)的清晰度,動(dòng)畫(huà)連續(xù)性控制 |
| biasValues | 一組NSNumber對(duì)象,用于定義曲線(xiàn)相對(duì)于控制點(diǎn)的位置。動(dòng)畫(huà)偏差率控制 |
| rotationMode | 確定沿著路徑動(dòng)畫(huà)的物體是否旋轉(zhuǎn)以匹配路徑切線(xiàn)。系統(tǒng)提供“auto”和“autoReverse”兩種,默認(rèn)為nil。 未提供路徑對(duì)象時(shí),將此屬性設(shè)置為非零值的效果未定義。 `autoReverse'旋轉(zhuǎn)以匹配切線(xiàn)加180度 |
-
CATransition
官方釋義:
An object that provides an animated transition between a layer's states.
提供圖層狀態(tài)之間動(dòng)畫(huà)轉(zhuǎn)換的對(duì)象。即轉(zhuǎn)場(chǎng)動(dòng)畫(huà)
| 屬性 | 作用 |
|---|---|
| type | 轉(zhuǎn)場(chǎng)動(dòng)畫(huà)類(lèi)型 |
| subtype | 轉(zhuǎn)場(chǎng)動(dòng)畫(huà)方向 |
| startProgress與endProgress | 進(jìn)入到開(kāi)始和結(jié)束執(zhí)行過(guò)渡的進(jìn)度。 合法值是[0,1]范圍內(nèi)的數(shù)字。 endProgress必須大于或等于startProgress。 默認(rèn)值分別為0和1 |
終于到最后一個(gè)了
-
CAAnimationGroup
官網(wǎng)釋義:
An object that allows multiple animations to be grouped and run concurrently
允許將多個(gè)動(dòng)畫(huà)分組并同時(shí)運(yùn)行的對(duì)象
| 屬性 | 作用 |
|---|---|
| animations | 所有動(dòng)畫(huà)效果元素的數(shù)組 |
干貨完畢,下面附上demo:
CABasicAnimation
剩余其他動(dòng)畫(huà)的demo會(huì)在一個(gè)月之內(nèi)更新上,不要著急哈哈哈