绘制图像完全没有了

时间:2010-04-07 19:52:03

标签: iphone

您好我正在使用下面的代码让用户在我的应用上的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;

关于这里到底发生了什么的任何想法?

2 个答案:

答案 0 :(得分:0)

也许,不是将屏幕用于位置并绘制到白色视图,而是使用相反的方式,因此导致线条移出白色视图。

只是一个想法。对不起,但是从我的iPhone上,这是我能给出的最佳答案。

顺便提一下,我真的建议设备调试。我发现了大量的可用性缺陷,它更适合衡量性能。

我迫不及待地想看看这个应用程序,在可以的时候给我发电子邮件,我将在星期五看看。如果您愿意,我有一个计算项目应用程序和一个网站供您进行beta / alpha测试!

答案 1 :(得分:0)

好的,想通了:

我可能会稍后发布代码,但是,要绘制的UIView设置为:

signature.frame所有属性应为signature.bounds

最后,删除所有lastPoint.ycurrentPoint.y定义。

现在,在这一点上,我将考虑使用变量来替换UIGraphicsGetCurrentContext()