解密 iOS 类库iOS Developer

iOS 酷炫的一个画发散线条的小工具

2017-01-03  本文已影响71人  阿瑟李

前几天在网上看见一个开源库, 觉得效果看起来很酷, 直接上图

Paste_Image.png
Paste_Image.png

首先, 这个库是很简单的, 但是我们其实是要学习这里边的思路, 先想想,如果是你,该如何实现这种效果呢, 你会设置哪些参数呢?
想没想好也没关系,我们先看他是怎么实现的呢?让我们来看看源码吧.
库提供了画线和圆圈两个接口, 由于参数类似, 我们其实通过一个就可以了解了.

func drawDistortedLine(
with definitionPoints: Int, 
width: CGFloat, '
numberOfLines: Int, 
xRandomness: CGFloat, 
yRandomness: CGFloat, 
xInfluenceInXAxis: CGFloat, 
yInfluenceInXAxis: CGFloat
) -> UIImage 

看了这几个参数, 那么我就可以把整个画图的流程给大家说一遍了

  1. 首先得到参数
  2. 根据参数得到一条线的一些随机点
    2.1. 首先根据 definitionPoints 把 先平分
    2.2. 每一个节点计算随机浮动
    2.3. 再把 浮动值*Influence
    2.4. 移动节点并保存到数组
  3. 重复步骤 2, 得到所有线的点集
  4. 计算所有点所存在的范围
  5. 根据点画出所有的线, 然后导出图片(划线的时候使用贝塞尔曲线)

结语

类库,很简单,但是让你去写却不一定能很轻松.
我不知道为什么, 在看他的参数的时候莫名其妙的就想到了 autoLayout, 细想想, 的确有些地方有些神似, 其实也就是通过多维条件来控制一个数值, 在 layout 中就是距离, 在这里就是随机偏移.
这个库算是给大家没事开开脑洞罢了. 有兴趣去看看源码~

上一篇 下一篇

猜你喜欢

热点阅读