iOS 扩展性极强的波浪效果工具类


声明:本文转载自https://my.oschina.net/LiPengYue/blog/1539669,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

冲浪.gif

前言: 工作中遇到冲浪需求,于是找了很多资料做参考,最后集成了一个工具类


一、实现思路

  1. 用正弦函数,计算波浪上的点用UIBezierPathmoveToPointaddLineToPoint连接成线,
  1. 用定时器DisplayLink作为动力源
  2. 停止波浪: 停止定时器并赋值为nil
  3. 开启波浪: 新建定时器,并setNeedsDisplay

二、详细代码 1. 创建

  1. 提供的构造方法**构造方法 构造方法将自动开启冲浪不需要手动调用开启**
/**  * 冲浪视图的类构造方法  * @param colorMutableArray 颜色数组  * @param progress 高度或进度,占self.frame.size.height得百分比  */ +(instancetype)waveViewWithFrame:(CGRect)frame andColorSet: (NSMutableArray <UIColor *>*)colorMutableArray andProgress: (CGFloat)progress; /**  * 冲浪视图的类构造方法  * @param colorMutableArray 颜色数组  * @param progress 高度或进度,占self.frame.size.height得百分比  */ -(instancetype)initWithFrame:(CGRect)frame andColorSet: (NSMutableArray <UIColor *>*)colorMutableArray andProgress: (CGFloat)progress; 
  1. 默认的构方法要手动打开冲浪模式

2.开启 & 停止冲浪

是否冲浪(设置成YES开始冲浪,设置成NO停止冲浪。 默认为NO)

@property (nonatomic,assign) BOOL isWaveStart; 

3.炫酷的扩展性

  1. 颜色

///需要画出的颜色数组,可以随时添加,内部在绘图的时候对数组进行了遍历

@property (nonatomic,strong) NSMutableArray<UIColor *> *colorMutableArray; 
  1. 海水的高度 (可以作为下载进度)

高度或进度,占self.frame.size.height得百分比

@property (nonatomic,assign) CGFloat progress; 
  1. 水波的参数

1.振幅 (水波的振幅)

@property (nonatomic, assign) CGFloat amplitude; 

2.水波的周期

@property (nonatomic, assign) CGFloat cycle; 

3.两个波水平之间偏移的距离

@property (nonatomic, assign) CGFloat distanceH; 

4.两个波竖直之间偏移

@property (nonatomic, assign) CGFloat distanceV; 

5.水波的速率(默认0.1)

@property (nonatomic, assign) CGFloat waveScale; 
  1. 形状的扩展

1.自定义形状

@property (nonatomic, strong) UIBezierPath *bazierPath; 

2.形状类型,默认是圆形(分为矩形和圆形两种,如果设置了bazierPath属性,则优先按照bazierPath路径获取形状)

@property (nonatomic,assign) PYWaveViewPathType pathType; 

3.关于形状的枚举

typedef enum : NSUInteger {     PYWaveViewPathType_CIRCULAR = 0,//圆形     PYWaveViewPathType_RECT = 1,//矩形 } PYWaveViewPathType; 

话不多说,源码代码请看这里

本文发表于2017年09月19日 10:37
(c)注:本文转载自https://my.oschina.net/LiPengYue/blog/1539669,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2471 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1