UIPinchGestureRecognizer *pinch = [[UIPinchGestureRecognizer alloc] init];
[firstView addGestureRecognizer:pinch];
[pinch addTarget:self action:@selector(pinch:)];
- (void)pinch:(UIPinchGestureRecognizer *)pinch {
UIView *view = pinch.view;
if (pinch.numberOfTouches == 2){
if (pinch.state == UIGestureRecognizerStateBegan || pinch.state == UIGestureRecognizerStateChanged) {
CGPoint onoPoint = [pinch locationOfTouch:0 inView:view];
CGPoint twoPoint = [pinch locationOfTouch:1 inView:view];
CGPoint anchorPoint;
anchorPoint.x = (onoPoint.x + twoPoint.x) / 2 / view.bounds.size.width;
anchorPoint.y = (onoPoint.y + twoPoint.y) / 2 / view.bounds.size.height;
CGRect oldFrame = view.frame;
view.layer.anchorPoint = anchorPoint;
view.frame = oldFrame;
view.transform = CGAffineTransformScale(view.transform, pinch.scale, pinch.scale);
pinch.scale = 1;
}
}
}