iOS超简单创建波浪动画和进度动画

第一次接触波浪效果来自于拉钩的个人详情页,觉得它的效果不错,便自己使用Objective-C实现了一下,先看拉钩的效果和实现的效果:

拉钩的效果
自己实现的效果,默认设置+减小波动振幅

首先新建项目,将WaveView拖入到项目中。推荐使用Cocoapods导入,如果使用 pod search waveview 搜索不到,在终端输入 rm ~/Library/Caches/CocoaPods/search_index.json 后重新执行 pod search waveview 即可。

将WaveView拖进项目

导入wave.h文件,项目中有两个类,创建View视图使用类 WaveView,创建ProgressView进度动画视图使用类WaveProgressView。两个类均支持xib创建。cocoapods导入需要使用 #import <wave.h>

创建view的demo,直接将xib中view的class 设置为WaveView,然后正常使用该view即可。可以在view上添加子控件,添加了几个button用于设置这个View的演示属性。 第一个Button用于切换波动图层的数量,第二个Button设置波动的振幅大小,第三个Button设置随机Color,第四个Button设置View的类型,View创建出来默认是WaveViewTypeDefault类型,即View的波动在上方,其他类型还有:WaveViewTypeBottomWaveViewTypeLeftWaveViewTypeRight

为了演示使用xib创建,推荐使用代码创建,更简洁方便

设置该View的基本属性,可以不设置,使用默认设置。

@interface WaveViewController ()
@property (weak, nonatomic) IBOutlet WaveView *waveView;
@end
@implementation WaveViewController
// 演示设置波动是单层波动还是双层波动效果
- (IBAction)showDoubleWave:(id)sender {
    self.waveView.isDouble = !self.waveView.isDouble;   
}
// 演示设置波动高度的代码
- (IBAction)changeWaveAmplitude:(id)sender {
    self.waveView.waveAmplitude += 20;
    if(self.waveView.waveAmplitude >= 100) {
        self.waveView.waveAmplitude = 5;
    }   
}
// 演示设置颜色的代码
- (IBAction)changeColor:(id)sender {
    self.waveView.firsetWaveColor = [self getRandomColor];
    self.waveView.secondWaveColor = [self getRandomColor];   
}
- (UIColor *)getRandomColor {
    int red = arc4random_uniform(256);
    int green = arc4random_uniform(256);
    int blue = arc4random_uniform(256);
    return [UIColor colorWithRed:red / 256.0 green:green / 256.0 blue:blue / 256.0 alpha:1];   
}
// 演示设置view类型的代码
- (IBAction)changeWaveType:(id)sender {
    // 类型应该直接设置为:WaveViewTypeDefault,WaveViewTypeBottom,WaveViewTypeLeft,WaveViewTypeRight
    self.waveView.waveViewType = (self.waveView.waveViewType + 1) % 4;
    }
}
@end

显示效果如下:

默认样式
改变颜色与类型

进度动画创建也同样地简单。
导入wave.h文件,直接创建类WaveProgressView的对象,就会得到一个配制好的进度控件.

WaveProgressView *progress = [[WaveProgressView alloc] initWithFrame:self.showView.bounds];
[self.showView addSubview:progress];
self.progress = progress;
默认样式
修改样式

然后可以对该控件进行定制:如设置波动颜色,设置空间类型,是否显示进度的百分比及颜色等等。

可设置属性:
1. 波动前波浪的颜色: firstWaveColor;
2. 波动后波浪的颜色: secondWaveColor;
3. 波动进度: percent; 这个属性的区间为 0 - 1;
4. 是否显示百分比: showPercent;BOOL类型
5. 设置百分比颜色: percentColor;
6. 设置是否显示双层波浪: isDouble; BOOL类型。
7. 设置圆形样式或方形样式: isCircle; BOOL类型。

演示效果:

WaveView的部分效果
WaveProgressView的部分效果

Github项目演示Demo:
Github 如果您觉得不错请star,谢谢🙏

使用中有问题欢迎和我交流,我的wechat:RobotDarwin

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,022评论 4 62
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,289评论 7 249
  • 人总是在接近幸福的时侯倍感幸福,当我们身处幸福的时侯却患得患失;时间并不能真的帮我们解决什么问题,它只是把我们曾经...
    虚怀若谷8阅读 186评论 0 0
  • Xcode菜单 Xcode(v 8.3.3)菜单栏选项及作用介绍 @楚简约 Xcode基本操作 @曾梦想仗剑走天涯...
    独木舟的木阅读 5,480评论 0 6
  • 花开的时候,又过了一个春夏秋冬,看时光飞逝,却抹不去心里的思念,花落的时候,放下了曾经不满和抱怨,关于这段情,或许...
    幽小窗阅读 713评论 8 10