教你在iOS上绘制自然的签名

这里有一篇很棒的文章写如何在Android上获取流畅的签名:Smoother Signatures,但是我没有找到一篇是写在iOS上如何实现。那么,究竟怎么做才能在iOS设备上获取用户的签名呢?

虽然我没有找到任何关于获取签名的文章,但是在App store上已经有了实现得很好的app。 Paper by 53 是一个画画的iPad应用程序,它拥有漂亮并且灵敏的画笔,这也是我所要追求的用户体验。

代码可以从这里得到:SignatureDemo

连点成线

最简单得办法是,依次获取触摸点并且用直线把它们连起来。

在UIView子类的初始化方法中创建path和用于捕获触摸事件的gesture recongnizer .

// Create a path to connect lines
path = [UIBezierPath bezierPath];  

// Capture touches
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
pan.maximumNumberOfTouches = pan.minimumNumberOfTouches = 1;
[self addGestureRecognizer:pan];

将捕获到的pan事件location数据依次加入到贝塞尔path中,连点成线。

- (void)pan:(UIPanGestureRecognizer *)pan {
    CGPoint currentPoint = [pan locationInView:self];  

    if (pan.state == UIGestureRecognizerStateBegan) {
        [path moveToPoint:currentPoint];
    } else if (pan.state == UIGestureRecognizerStateChanged)
        [path addLineToPoint:currentPoint];  

    [self setNeedsDisplay];
}

画出轨迹

- (void)drawRect:(CGRect)rect
{
    [[UIColor blackColor] setStroke];
    [path stroke];
}

用这种方法画个字母J就暴露出一些问题了。

当签名速度较慢时,iOS可以捕获到足够的touch位置信息,让连接起来的直线看起来不那么明显。但是当手指移动速度很快时就有麻烦了。

在2012苹果开发者大会中介绍的 Building Advanced Gesture Recognizers 提到,可以用数学来解决这个问题。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索path
, 用户体验
, 中创
, 直线
, 贝塞尔
, Self
iOS触摸事件
绘制签名、顺其自然的个性签名、自然人签名按指纹、顺其自然签名、顺其自然的签名,以便于您获取更多的相关知识。

时间: 2024-10-03 21:24:51

教你在iOS上绘制自然的签名的相关文章

《iOS 6核心开发手册(第4版)》——1.8节秘诀:在屏幕上绘制触摸

1.8 秘诀:在屏幕上绘制触摸 iOS 6核心开发手册(第4版) UIView提供了在屏幕上直接绘图的功能.它的drawRect:方法提供了一种直接绘制内容的低级方式,允许使用Quartz 2D调用创建和显示任意的元素.结合使用触摸和绘图可以构建具体的.可操作的界面. 秘诀1-7把姿势与drawRect相结合,引入了基于触摸的绘画.当用户触摸屏幕时,TouchTrackerView类将沿着用户的手指构建一条贝塞尔曲线路径.为了在触摸时画出前进的路径,touchesMoved:withEvent:

unity中的音乐在ios上不能循环播放

问题描述 unity中的音乐在ios上不能循环播放 RT播放完一边后本来是应该继续播第二遍的结果在ios上就卡在那里了在winodows上没问题在Mac机上有问题请问这是什么原因?

细数iOS上的那些安全防护

细数iOS上的那些安全防护 作者:龙磊.黑雪.蒸米@阿里巴巴移动安全 0x00 序 随着苹果对iOS系统多年的研发,iOS上的安全防护机制也是越来越多,越来越复杂.这对于刚接触iOS安全的研究人员来说非常不友好,往往不知从何入手.因此,为了让大家能够更加系统性的了解iOS上的安全机制,我们从三个方面着眼:代码签名(CodeSign).沙盒机制(SandBox) 和利用缓解(Exploit Mitigation),对iOS的系统安全机制做了一个总结.希望能够给大家的学习以及研究带来一定的帮助.注意

paint-怎么在网页上绘制图形

问题描述 怎么在网页上绘制图形 老师要求根据一个json文件在网页里面绘制出地图,类似于Echart的底图,也就是Echart下面的那层地图的效果?简单一点也可以说是怎么在网页里面画东西?请问我应该学习那些知识?本人是学生,没有悬赏,希望大家能帮帮忙?谢谢 解决方案 amCharts在网页上绘制各种图形[转]c# 绘制图形 解决方案二: canvas drawImage 解决方案三: 用html5的canvas,很方便 解决方案四: js,canvas,svg,vml(ie专用)等 解决方案五:

在Video Canvas上绘制图形

我们经常使用MMAPI提供的功能播放视频或者拍照图片,这时候可能希望在Video Canvas上绘制一些菜单或者图形.本文介绍如何在SonyEricsson的机型上完成上面的特性. 在SonyEricsson JP7的机型上,实现上面的特性非常容易.只需要在初始化VideoControl的时候指定一些特定的参数即可.例如 videoControl.initDisplayMode(VideoControl.USE_DIRECT_VIDEO | (overlay << 8) | (Sprite.T

IOS上运行javascript的onbeforeunload

 1.onbeforeunload事件: 说明:目前三大主流浏览器中firefox和IE都支持onbeforeunload事件,opera尚未支持. 用法: ·object.onbeforeunload = handler ·<element onbeforeunload = "handler" - ></element> 描述: 事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页.handler可以设一个返回值作为该对话框的显示文本

excel2013怎么在一张曲线图上绘制多条曲线?

  excel2013怎么在一张曲线图上绘制多条曲线?office软件每年的更新速度很快,虽然更新后的版本肯定能够实现更新前的功能,但是由于版式方面的改进,使得使用者初次使用时不是特别得心应手.下面重点讲述一下,如何利用excel2013在同一张图中做多条曲线的对比图,这个在科技论文写作中经常用到,希望作者的经验能够给后面的学习的人带来一定的帮助,有不妥之处还请指正. 1.采用的数据如下图所示,数据为作者自己通过matlab随意构造.两条曲线分别命名为"百度曲线A"和"百度曲

iOS 上常用的两个功能:点击屏幕和return退出隐藏键盘和解决虚拟键盘挡住UITextField的方法

转自:http://blog.csdn.net/xiaotanyu13/article/details/7711954 iOS上面对键盘的处理很不人性化,所以这些功能都需要自己来实现, 首先是点击return和屏幕隐藏键盘 这个首先引用双子座的博客 http://my.oschina.net/plumsoft/blog/42545,他的文章写的很好,对大家的理解很有好处. 在 iOS 程序中当想要在文本框中输入数据,轻触文本框会打开键盘.对于 iPad 程序,其键盘有一个按钮可以用来关闭键盘,但

深度学习在 iOS 上的实践 —— 通过 YOLO 在 iOS 上实现实时物体检测

本文讲的是深度学习在 iOS 上的实践 -- 通过 YOLO 在 iOS 上实现实时物体检测, 原文地址:Real-time object detection with YOLO 原文作者:Matthijs Hollemans 译文出自:掘金翻译计划 译者:Danny Lau 校对者:Dalston Xu ,DeepMissea 深度学习在 iOS 上的实践 -- 通过 YOLO 在 iOS 上实现实时物体检测 译者注: 在阅读这篇文章之前可能会遇到的一些名词,这里是解释(我自己也查了相当多的资