iOS非线性变化渐变色

转gif压缩问题,实机效果无明显棱线

需求分析

项目中很多时候要使用渐变色,但是系统框架给出的渐变都是线性渐变,那么想实现像阴影那样的非线性渐变就需要定义大量的点和中间色值。

思考

首先根据系统渐变特点,我们知道他是有一个locations和colors的,代表特征点位的色值。我们想实现类似阴影那样的即平滑有非线形的颜色变化过程实际上就是对这两个值做定义。但我们不可能每次都手动往里添加这么多特征点和色值,所以需要一个合适的方法来计算中间的点或色值。
数学定义上,非线性连续变化的很容易想到曲线,而常接触的曲线除了圆就是贝塞尔曲线了,这里我们使用贝塞尔曲线,通过调整控制点来动态控制颜色变化。

结果

demo地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容