核心動畫CABasicAnimation

2022-07-15 23:03:18 字數 2238 閱讀 9858

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,但是...