iOS 使用核心動畫加粒子發射器實現的點讚按鈕

2021-07-25 04:13:29 字數 3843 閱讀 4905

1.使用到的類

1

2

3

4

5

cakeyframeanimation// 核心動畫-關鍵幀動畫

caemitterlayer// 粒子發射器(其實就是乙個layer,其父類是calayer)

caemittercell// 粒子

ps:核心動畫應該不用多說了;

caemitterlayer和caemittercell,其實可以比喻成「炮」和「炮彈」,應該不難理解;

2.直接上部分關鍵** **中會有詳細的注釋

2.1 .m中需要擁有的屬性

1

2

/** weak型別 粒子發射器 */

@property (nonatomic, weak)  caemitterlayer *emitterlayer;

2.2initwithframe:方法中

1

2

3

4

5

6

7

8

- (instancetype)initwithframe:(cgrect)frame

returnself;

}

2.3setselected:方法中

1

2

3

4

5

- (void)setselected:(bool)selected

2.4layoutsubviews方法中

1

2

3

4

5

- (void)layoutsubviews

2.5setupemitter方法中( 配置粒子發射器方法 )

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

- (void)setup

ps:這裡有一點需要詳細解釋一下,caemittercell的屬性一般有兩個引數:乙個平均值和乙個「range」,比如:

1

2

3

// 粒子的生命週期和生命週期範圍

emittercell.lifetime         = 0.7;

emittercell.lifetimerange    = 0.3;

這裡蘋果的官方文件是這樣解釋的:

1

2

3

4

5

6

7

8

每乙個layer都有它自己的隨機數發生器,粒子的屬性大部分都被定義為乙個平均值和乙個範圍值,

如粒子的速度,這個屬性的值分布的區間為:[ m - r / 2,m + r / 2 ]。

然後 這個公式裡面

m:均值(拿上面**說就是 emittercell.lifetime)

r:範圍值(mittercell.lifetimerange)

然後我們就可根據公式算出上面我設定的粒子的生命週期的範圍是[0.7-0.3/2 , 0.7+0.3/2]

2.6keyframeanimation方法中 (開始關鍵幀動畫)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

- (void)animationelse

// 動畫模式

animation.calculationmode = kcaanimationcubic;

[self.imageview.layer addanimation:animation forkey:@"transform.scale"];

}

這段**沒什麼說的,應該很容易理解。

2.7startfire方法中 (開炮)

1

2

3

4

5

6

7

8

9

- (void)startfire

2.8stopfire方法中 (停火)

1

2

3

4

- (void)stopfire

最後放兩張效果圖

iOS開發核心動畫之粒子效果

一.示意圖 繪畫出一條線,點選開始有很多粒子繞著線運動,點選重繪消除粒子和線 二.實現 設計思路 自定義乙個view來描述控制器的view,在view載入過程中進行初始化,給view新增手勢 uipangesturerecognizer 將自定義view轉成複製層,建立乙個粒子層,新增到複製層上,並...

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...