贝塞尔曲线实现手写签名
项目前些天要求完成手写签名并生成图片的功能,找了很多的文章,大多数比较麻烦,而且也不需要实现那么多附带的功能。只需要实现简单的签名就可以,如何实现呢?其实这个手写签名和画板是一样的思路。
我们利用 path 和 手势事件 将视图上的点依次连起来就可以了,就可以简单的实现签名效果。
点-->线
我们首先创建一个继承与 UIView 的视图,在UIView子类中创建path和手势事件
--------------------------------------------------------------------------------------
接着在手势的回调方法里将 path 初始点和 location 的数据依次加入到BezierPath中
-----------------------------------------------------------------------------------------
并调用UIView 的 drawRect(重绘)方法, [self setNeedsDisplay] 调用后UIView会回调 drawRect 方法
[path stroke] 会使path里所有的点都连成线
----------------------------------------------------------------------------
在控制器中初始化你所自定义的UIView,你就可以查看签名效果了,可以看下效果
----------------------------------------------------------------------------------------
有没有发现什么问题,当签名慢的时候,iOS可以很好的捕捉到你 touch 的位置,让连起来的直线看着不那么明显,但是当你手速一快,就会发现曲线会很别扭,看着让人很难受。怎么解决呢?苹果有关贝塞尔曲线的官方文档告诉了我们。