LZSignature 1.0.4

LZSignature 1.0.4

LZRight维护。



  • 来自
  • Uber

来自Uber

Uber Signature

Swift版本现已可用!

在触摸屏上模仿纸笔签名带来了一系列挑战。

触摸事件发生的速率没有提供足够的信息来模仿用户用手指制作的平滑线条。仅在同一触摸点之间绘制直线会得出看起来不自然的离散线条 - 尤其在用户快速移动手指时,因为触摸事件的数量保持不变,为移动的距离提供的点数更少。

触摸信息也收集在主线程上,所以任何对主线程的瓶颈都会不利于触摸收集的频率。

真正的纸笔签名在线条粗细上有所不同,这与笔移动的速度及其在纸上的力度/软度有关。要模仿这一点,需要使用更复杂的绘图程序,涉及计算形状,而不仅仅是简单地在线性点之间绘制固定重量的线条。

我们用UberSignature尝试设计一个既响应又产生逼真签名的解决方案。该实现分别在多个类之间划分责任,使逻辑更容易理解和维护。核心算法也是同步编写的,使得其执行易于跟踪。然后,一个包装类封装了它并提供异步访问。

该软件包提供了一个SignatureDrawingViewController,可以检测触摸并在用户移动手指时绘制签名风格的线条。它提供了以以前图像为起始签名的实例化,获取当前签名图像,重置以及更改签名颜色的功能。它可以以任何大小展示,并调整视图大小将相应更新签名,使其可以轻松地在自动布局环境中使用。

使用方法

实例化一个SignatureDrawingViewController,可选地携带一个作为起始签名的图像。

ObjC

[[UBSignatureDrawingViewController alloc] initWithImage:image];

Swift

SignatureDrawingViewController(image: image)

视图控制器可以直接呈现,也可以作为子视图控制器添加。可以使用自动布局来定位视图,或者将框架设置为所需的大小。背景签名图像会自动调整大小以适应。

Signature Demo