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
就这样效果就出来了
本文来自博客园,作者:赫凯,转载请注明原文链接:https://www.cnblogs.com/heKaiii/p/15491324.html