I have a UIView with custom drawRect() method, used for some drawing.
I use UIPinchGestureRecognizer to achieve zooming effect.
This is action method:
- (IBAction)handlePinch:(UIPinchGestureRecognizer *)recognizer
{
//NSLog(@"Pinch gesture recognized");
CGPoint touchOrigin = [recognizer locationInView:self];
_currentScaleOrigin = touchOrigin;
if (recognizer.state == UIGestureRecognizerStateEnded)
{
NSLog(@"%16@ x = %f, y = %f", @"Pinch end:", touchOrigin.x, touchOrigin.y);
return;
}
if (recognizer.state == UIGestureRecognizerStateChanged)
{
//NSLog(@"scale = %f", recognizer.scale);
NSLog(@"%16@ x = %f, y = %f", @"Pinch origin:", touchOrigin.x, touchOrigin.y);
// scale has at start a value of 1.0 and increases as fingers moves away from each other
_currentScaleLevel += recognizer.scale - 1;
[self setNeedsDisplay]; // call drawRect for redrawing at current scale level
}
recognizer.scale = 1;
}
When receiving UIGestureRecognizerStateEnded
message i get some strange offset to coordinates:
Pinch origin: x = 358.000000, y = 630.000000
Pinch origin: x = 355.000000, y = 627.000000
Pinch origin: x = 353.000000, y = 625.000000
Pinch origin: x = 351.000000, y = 624.000000
Pinch origin: x = 351.000000, y = 623.000000
Pinch origin: x = 350.000000, y = 622.000000
Pinch origin: x = 349.000000, y = 622.000000
Pinch origin: x = 349.000000, y = 622.000000
Pinch end: x = 315.000000, y = 750.000000
... and translation for free :) which i dont need. I dont know from where translation comes from.
How to disable this translation?