關鍵幀動畫CAKeyframeAnimation

2021-07-11 03:56:54 字數 2599 閱讀 8654

介紹關鍵幀動畫之前先介紹一下什麼是補間動畫

補間動畫:兩個值發生改變,中間產生的動畫效果叫做部件動畫

關鍵幀動畫與基礎動畫的區別:基礎動畫只能是某個屬性的初始值到另乙個值產生的動畫效果

關鍵幀動畫支援多個值(

values

)或者乙個路徑(

path

)關鍵幀動畫的屬性

cakeyframeanimation

values

:值的陣列

path

:值得路徑

keytimes:

時間值(0,

1)timingfunctions

:速度控制的陣列

calculationmode

:動畫樣式

kcaanimationlinear

自定義控制動畫的時間(線性)可以設定

keytimes

kcaanimationdiscrete

離散動畫

沒有任何補間動畫

使用keytimes@[@0.3,@0.5,@1.0];

kcaanimationpaced

節奏動畫

自動計算動畫的運動時間

kcaanimationcubic

曲線動畫

需要設定

timingfunctions

kcaanimationcubicpaced

節奏曲線動畫

自動計算

rotationmode

:旋轉的樣式

kcaanimationrotateauto

自動kcaanimationrotateautoreverse

自動翻轉

具體**:實現花瓣掉落的效果

#import

"viewcontroller.h"

@inte***ce

viewcontroller()

//背景

@property

(nonatomic

, strong

) calayer

*layer; //

花瓣 @property

(nonatomic

, strong

) calayer

*petallayer;

@end

@implementation

viewcontroller

- (void

)viewdidload

- (void

)demo1

- (void

)demo2:(

cgpoint

)topoint

- (void

)touchesbegan:(

nsset

<

uitouch

*> *)touches withevent:(

uievent

*)event

- (calayer

*)petallayer

_petallayer

= [calayer

layer];

_petallayer

.position

= cgpointmake

(self

.view

.center.x

, 50);

uiimage

*image =[

uiimage

imagenamed:@"

花瓣4"];

_petallayer

.bounds

= cgrectmake(0

, 0, image.

size

.width

, image.

size

.height);

_petallayer

.contents

= (id

)image.

cgimage;

return

_petallayer;

} - (calayer

*)layer

_layer

= [calayer

layer];

_layer

.position

= cgpointmake

(self

.view

.center.x

, self

.view

.center.y

+100);

uiimage

*image =[

uiimage

imagenamed

:@"bgimage"];

_layer

.bounds

= cgrectmake(0

, 0, image.

size

.width/2

, image.

size

.height/2

); _layer

.contents

= (id

)image.

cgimage;

return

_layer;

}

動畫(過渡動畫 關鍵幀動畫)

過渡動畫 寫到css樣式裡 transition all 1s ease in out 2s 變化曲線的值 ease 預設值,先快再快再慢 ease in 淡入 動畫剛開始的時候變化慢 ease out 淡出 動畫快結束的時候變化慢 ease in out 淡入淡出 開始慢,中間塊,結束慢 line...

iOS開發之關鍵幀動畫

cabasicanimation揭示了大多數隱式動畫背後以來的機制,但是顯示的給圖層新增cabasicanimation相較於隱式動畫而言,之恩能夠說是非禮不討好。cakeyframeanimation是一種uikit沒有暴露出來但是功能強大的類。和cabasicanimation類似,cakeyf...

動畫技術 關鍵幀 keyFrame

動畫技術 關鍵幀 keyframe 關鍵幀是一種常用的動畫技術,其基本原理是將動畫序列中比較關鍵的幀提取出來,而其他幀根據時間用這些關鍵幀插值計算得到。乙個簡單的關鍵幀結構 typedef struct skeyframe skeyframe 這是乙個非常簡化的結構,只包含時間和矩陣。但從這個結構可...