IOS 波波波波波波最浪的波

手机上的波浪效果,原理就是用一个定时器来刷屏,每刷一次就让屏幕上的线条就变一次,让其跟着时间来绘制自己的轨迹。

波浪肯定是个周期,周期的话最容易想到的是sin,cos。0°~360°为一个周期,圆嘛,定一个变量从0开始一直到360,然后一直轮回

周期有了还需要一个函数来绘制它的轨迹。轨迹的话也就是画曲线了,随着时间(就是咱们的那个周期)变而变。

原理基本就是这样,我们想着如何去实现。

首先呢,要有个定时器的东西一直在刷新吧,nstimer?不用这个,这个不太精准,网上查了一下用这个 CADisplayLink

iOS开发中深入理解CADisplayLink和NSTimer 这个里面讲的很详细

caddisp = CADisplayLink(target: self, selector:#selector(shuaxin))
caddisp?.add(to: RunLoop.current, forMode: RunLoopMode.commonModes)
初始化以及开始

那我们所要做的就是在shuaxin这个方法里去描绘图画

这个里面把图层什么的讲的很清楚哦 ios Core Animation:Advanced Techniques(中文译本)

画图有这一种上下文的方法网上一大堆,我要用这个 UIBezierPath+CAShapeLayer

  path?.removeAllPoints()
  path?.move(to: CGPoint(x: -150, y:150))
  path?.addLine(to: CGPoint(x: 0, y: self.frame.size.height))
  path?.addLine(to: CGPoint(x: self.frame.size.width, y:  self.frame.size.height))
  path?.addLine(to: CGPoint(x: self.frame.size.width+150, y:  150))
  path?.addCurve(to: CGPoint(x: -150, y:150), controlPoint1: con1, controlPoint2: con2)
  Layer?.path = path?.cgPath      
就这样效果就出来了





posted @ 2016-12-19 21:42  赫凯  阅读(19)  评论(0)    收藏  举报