Hi I’m using this code below to let a user “draw” their signature on a UIView component on my app:
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()
The issue I am having is that the drawing is not only is the drawing not in line with the pointer when in use in the simulator, the image is going outside of the designated UIView compontent and is getting smaller/out of focus the more I draw, as you can see in this image:
alt text http://dl.dropbox.com/u/1545603/iphone-signature-issues.png
And after a few lines, showing the boundaries of the exact are of where I can draw:
alt text http://dl.dropbox.com/u/1545603/iphone-signature-issues2.png
Any ideas on what’s happening here?
lastPoint.y is defined as: lastPoint.y -= 20;
Any ideas on what on earth is happening here?
Ok, figured it out:
I might post up the code later, but, the UIView to draw on was set to:
signature.framewhereas it should besignature.boundsfor all properties.Finally, remove all
lastPoint.yandcurrentPoint.ydefinitions.Now, at this point, I will consider using variables to replace
UIGraphicsGetCurrentContext()