iOS核心動畫 基礎動畫

2021-07-05 08:04:21 字數 2657 閱讀 9954

核心動畫

在ios中核心動畫分為幾類:基礎動畫(cabasicanimation)

關鍵幀動畫(cakeyframeanimation)

動畫組(caanimationgroup)

轉場動畫(catransition)

caanimation: 核心動畫的基礎類,不能直接使用,負責動畫執行時間、速度的控制,本身實現了camediatiming協議。

capropertyanimation:屬性動畫的基類(通過屬性進行動畫設定,注意是動畫屬性),不能直接使用

cabasicanimation:基礎動畫,通過屬性修改進行動畫引數控制,只有初始狀態和結束狀態。

cakeyframeanimation:關鍵幀動畫,同樣是通過屬性進行動畫引數控制,但是同基礎動畫不同的是它可以有多個狀態控制。

caanimationgroup:動畫組,動畫組是一種組合模式設計,可以通過動畫組來進行所有動畫行為的統一控制,組中所有動畫效果可以併發執行。

catransition:轉場動畫,主要通過濾鏡進行動畫效果設定。

基礎動畫、關鍵幀動畫都屬於屬性動畫,就是通過修改屬性值產生動畫效果,開發人員只需要設定初始值和結束值,中間的過程動畫(又叫「補間動畫」)由系統自動計算產生。和基礎動畫不同的是關鍵幀動畫可以設定多個屬性值,每兩個屬性中間的補間動畫由系統自動完成,因此從這個角度而言基礎動畫又可以看成是有兩個關鍵幀的關鍵幀動畫

cabasicanimation:

建立基礎動畫 需要通過fromvalue 和tovalue 屬性來指定乙個開始值和結束值當新增基礎動畫到圖層中的時候它才會開始變化

autoreverses:當設定這個屬性為yes 時,在它到達目的地之後,會以動畫的方式返回初始值

duration 設定開始值到結束值花費的時間期間會被速度的屬性影響

把速度設定成0 就可以暫停動畫

repeatduration 這個屬性指定了動畫應該被重複多久。動畫會一直重複,直到設定的時間流逝完。它不應該和repeatcount 一起使用

timingfunction 速度控制函式,控制動畫執行的節奏

timingfunction 屬性值:

kcamediatimingfunctionlinear(線性):勻速,給你乙個相對靜態的感覺

kcamediatimingfunctioneasein(漸進):動畫緩慢進入,然後加速離開

kcamediatimingfunctioneaseout(漸出):動畫全速進入,然後減速的到達目的地

kcamediatimingfunctioneaseineaseout(漸進漸出):動畫緩慢的進入,中間加速,然後減速的到達目的地。這個是預設的動畫行為。

removedoncompletion 預設為yes,代表動畫執行完畢後就從圖層上移除,圖形會恢復到動畫執行前的狀態。如果想讓圖層保持顯示動畫執行後的狀態,那就設定為no,不過還要設定fillmode為kcafillmodeforwards

fillmode  設定當前物件在非活動時間段的行為比如動畫開始之前或者動畫結束之後

fillmode屬性值(上面提到過

要想fillmode有效,必須設定removedoncompletion = no)

kcafillmoderemoved 這個是預設值,也就是說當動畫開始前和動畫結束後,動畫對layer都沒有影響,動畫結束後,layer會恢復到之前的狀態

kcafillmodeforwards 當動畫結束後,layer會一直保持著動畫最後的狀態

kcafillmodebackwards 在動畫開始前,只需要將動畫加入了乙個layer,layer便立即進入動畫的初始狀態並等待動畫開始。

kcafillmodeboth 這個其實就是上面兩個的合成.動畫加入後開始之前,layer便處於動畫初始狀態,動畫結束後layer保持動畫最後的狀態

capropertyanimation

可以通過改變animationwithkeypath來改變動畫的屬性:

transform.scale = 比例轉換

transform.scale.x

transform.scale.y

transform.rotation.z

opacity = 透明度

zposition//z 軸的中心點

backgroundcolor 背景顏色

cornerradius 圓角

borderwidth

bounds

contents

contentsrect

cornerradius

frame

hidden

mask

maskstobounds

opacity

position

shadowcolor

shadowoffset

shadowopacity

shadowradius

源**如下:

- (void)viewdidload

#pragma mark --------改變position----------

-(void)animation1

#pragma mark -------------改變bounds-------

-(void)animation2

-(void)touchesbegan:(nsset *)touches withevent:(uievent *)event

核心動畫 基礎動畫

一.簡單介紹 capropertyanimation的子類 屬性解析 fromvalue keypath相應屬性的初始值 tovalue keypath相應屬性的結束值 隨著動畫的進行,在長度為duration的持續時間內,keypath相應屬性的值從fromvalue漸漸的變為tovalue。如果...

IOS核心動畫

void basicanimation calayer layer animation.duration 2 animation.delegate self animation.removedoncompletion no animation.fillmode kcafillmodeforwards...

IOS開發核心動畫篇 核心動畫簡介

ios開發ui篇 核心動畫簡介 一 簡單介紹 core animation,中文翻譯為核心動畫,它是一組非常強大的動畫處理api,使用它能做出非常炫麗的動畫效果,而且往往是事半功倍。也就是說,使用少量的 就可以實現非常強大的功能。core animation是跨平台的,可以用在mac os x和io...