您好我正在使用下面的代码让用户在我的应用上的UIView组件上“绘制”他们的签名:
UIGraphicsBeginImageContext(signature.frame.size);
[drawImage.image drawInRect:CGRectMake(0, 0, signature.frame.size.width, signature.frame.size.height)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0);
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
CGContextFlush(UIGraphicsGetCurrentContext());
drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext()
我遇到的问题是绘图不仅仅是在模拟器中使用时绘图与指针不一致,图像超出了指定的UIView组件并且变得越来越小/没有焦点我画了更多,你可以在这张图片中看到: alt text http://dl.dropbox.com/u/1545603/iphone-signature-issues.png
在几行后,显示我可以绘制的确切界限: alt text http://dl.dropbox.com/u/1545603/iphone-signature-issues2.png
关于这里发生了什么的任何想法?
lastPoint.y
定义为:lastPoint.y -= 20;
关于这里到底发生了什么的任何想法?
答案 0 :(得分:0)
也许,不是将屏幕用于位置并绘制到白色视图,而是使用相反的方式,因此导致线条移出白色视图。
只是一个想法。对不起,但是从我的iPhone上,这是我能给出的最佳答案。
顺便提一下,我真的建议设备调试。我发现了大量的可用性缺陷,它更适合衡量性能。
我迫不及待地想看看这个应用程序,在可以的时候给我发电子邮件,我将在星期五看看。如果您愿意,我有一个计算项目应用程序和一个网站供您进行beta / alpha测试!
丹
答案 1 :(得分:0)
好的,想通了:
我可能会稍后发布代码,但是,要绘制的UIView设置为:
signature.frame
所有属性应为signature.bounds
。
最后,删除所有lastPoint.y
和currentPoint.y
定义。
现在,在这一点上,我将考虑使用变量来替换UIGraphicsGetCurrentContext()