core animation是一組非常強大的動畫處理api,使用它能做出非常炫麗的動 畫效果,而且往往是事半功倍!
1.開發步驟:
初始化乙個動畫物件(caanimation)並設定一些動畫相關屬性
新增動畫物件到層(calayer)中,開始執行動畫
core animation的動畫執行過程都是在後台操作的,不會阻塞主線程
2.core animation的主要類
提供顯示內容的圖層類:calayer及其子類
動畫和計時類:caanimation及其子類、camediatiming
布局和約束類:caconstraint、caconstraintlayoutmanager
事務類,在原子更新的時候組合圖層類:catransaction、caactiontransition
3.cabasicanimation
基本動畫,是capropertyanimation的子類
屬性說明:
fromvalue:keypath相應屬性的初始值
tovalue:keypath相應屬性的結束值
3.1動畫過程說明:
隨著動畫的進行,在長度為duration的持續時間內,keypath相應屬性的值從fromvalue 漸漸地變為tovalue
keypath內容是calayer的可動畫animatable屬性
如果fillmode=kcafillmodeforwards同時removedoncomletion=no,那麼在動畫執 行完畢後,圖層會保持顯示動畫執行後的狀態。但在實質上,圖層的屬性值還是動畫執行前的 初始值,並沒有真正被改變。
上**:
// 1 caanimation
//bounds transform
//keypath:指定layer的乙個屬性值,通過修改該屬性值達到動畫的效果
cabasicanimation *animation = [cabasicanimation animationwithkeypath:@"transform.scale"];
//2 設定屬性
//1>動畫的起始值
animation.fromvalue = @0.5;
//2>動畫的結束值
animation.tovalue = @3;
//--------- camediatiming----------
//3>動畫的持續時間
animation.duration = 3;
//4>自動回放 (多花一倍時間)
// animation.autoreverses = yes;
//5>動畫完成後移除動畫 (如果不移除動畫,需要和填充方式一起使用)
animation.removedoncompletion = no; //(預設是yes)
//6>填充方式
animation.fillmode = kcafillmodeforwards;
// animation.fillmode = kcafillmodebackwards;
kcafillmodeforwards:保留動畫結束後的效果
kcafillmodebackwards:動畫開始之前,會提前進入動畫開始的效果(開延時才可以看出)
kcafillmodeboth:2者都有
kcafillmoderemoved:2者都沒有
//7>begintime:開始時間 (延遲一秒之後執行動畫)
// animation.begintime = cacurrentmediatime()+1;
//8>timeoffset 時間偏移量 (開始執行第2秒的動畫,執行到指定的持續時間為止)
// animation.timeoffset = 2;
//9>repeatcount:重複次數
animation.repeatcount = 2;
//10>repeatduration:重複的總時間 (如果和重複次數有衝突,遵循重複時間)
animation.repeatduration =4;
//11>speed:動畫的速度 (和持續時間衝突)
animation.speed =.3;
//3 將動畫物件新增到layer上面
//key:標示
//animation物件在這copy乙份;所以屬性要寫在新增之前
[self.myimageview.layer addanimation:animation forkey:@"animation"];
核心動畫 基礎動畫
一.簡單介紹 capropertyanimation的子類 屬性解析 fromvalue keypath相應屬性的初始值 tovalue keypath相應屬性的結束值 隨著動畫的進行,在長度為duration的持續時間內,keypath相應屬性的值從fromvalue漸漸的變為tovalue。如果...
IOS開發核心動畫篇 核心動畫簡介
ios開發ui篇 核心動畫簡介 一 簡單介紹 core animation,中文翻譯為核心動畫,它是一組非常強大的動畫處理api,使用它能做出非常炫麗的動畫效果,而且往往是事半功倍。也就是說,使用少量的 就可以實現非常強大的功能。core animation是跨平台的,可以用在mac os x和io...
核心動畫(1)
關於圖層的幾個座標系。對於ios來說,座標系的 0,0 點在左上角,就是越往下,y值越大。越往右,x值越大。乙個圖層的frame,它是position,bounds,anchorpoint和transform屬性的一部分。設定乙個新的frame將會相應的改變圖層的position和bounds,但是...