一、简单分析
音乐震动条不需要与用户交互。我们可以使用复制层来操作。添加震动条。添加动画。
复制层说明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//创建复制层 -( void )createrepl{ //复制层 careplicatorlayer * repl = [careplicatorlayer layer]; repl.frame = self.contentv.bounds; //复制6份 repl.instancecount = 6; //形变,每一个形变都是相对于上一个复制出来的子层开始的 repl.instancetransform = catransform3dmaketranslation(45, 0, 0); //动画延时执行 repl.instancedelay = 0.5; ///要设置复制层的颜色 原始层的颜色要设为白色. repl.instancecolor = [uicolor redcolor].cgcolor; [self.contentv.layer addsublayer:repl]; self.repl = repl; } |
二、代码
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
// // viewcontroller.m // 03_uiview75_音乐震动条 // // created by 杞文明 on 17/7/21. // copyright © 2017年 杞文明. all rights reserved. // #import "viewcontroller.h" @interface viewcontroller () @property (weak, nonatomic) iboutlet uiview *contentv; @property (weak,nonatomic) careplicatorlayer * repl; @property (weak,nonatomic) calayer * layer; @end @implementation viewcontroller - ( void )viewdidload { [super viewdidload]; //1.创建复制层次 [self createrepl]; //2.添加音量震动条 [self addvoicebar]; //3.添加动画 [self addanimation]; } //创建复制层 -( void )createrepl{ //复制层 careplicatorlayer * repl = [careplicatorlayer layer]; repl.frame = self.contentv.bounds; //复制6份 repl.instancecount = 6; //形变,每一个形变都是相对于上一个复制出来的子层开始的 repl.instancetransform = catransform3dmaketranslation(45, 0, 0); //动画延时执行 repl.instancedelay = 0.5; ///要设置复制层的颜色 原始层的颜色要设为白色. repl.instancecolor = [uicolor redcolor].cgcolor; [self.contentv.layer addsublayer:repl]; self.repl = repl; } //添加音量震动条 -( void )addvoicebar{ calayer * layer = [calayer layer]; layer.frame = cgrectmake(0, self.contentv.bounds.size.height-150, 30, 150); layer.backgroundcolor = [uicolor whitecolor].cgcolor; layer.position = cgpointmake(0, self.contentv.bounds.size.height); layer.anchorpoint = cgpointmake(0, 1); [self.repl addsublayer:layer]; self.layer = layer; } //添加动画 -( void )addanimation{ //添加动画 对y方向缩放 cabasicanimation * anim = [cabasicanimation animation]; //设置属性 anim.keypath = @ "transform.scale.y" ; anim.tovalue = @0; anim.repeatcount = maxfloat; anim.autoreverses = yes; anim.duration = 0.5; [self.layer addanimation:anim forkey:nil]; } @end |
三、图示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。