UIPinchGestureRecognizer. Faire un zoom dans l'emplacement des doigts, pas seulement le centre

Je suis en mesure d'utiliser UIPinchGestureRecognizer pour faire un zoom avant sur la Vue d'un UICollectionViewCell, mais il n'est pas question de l'endroit où vous commencer à faire de la UIPinch geste, toujours le zoom va dans le centre de la vue. Par exemple, je voudrais faire pincer dans le coin supérieur gauche de la vue et le zoom doit être créée dans la position où je touche l'écran. Mais Si je fais ça, le zoom est créé dans le centre de la vue.

C'est le code que j'utilise pour faire des zoom:

 if([gesture state] == UIGestureRecognizerStateBegan) {
        previousScale = 1.0;

    }

    if (
        [gesture state] == UIGestureRecognizerStateChanged) {

        CGFloat currentScale = [[[gesture view].layer valueForKeyPath:@"transform.scale"] floatValue];

        //Constants to adjust the max/min values of zoom
        const CGFloat kMaxScale = 4.0;
        const CGFloat kMinScale = 1.0;

        CGFloat newScale = 1 -  (previousScale - [gesture scale]); //new scale is in the range (0-1)
        newScale = MIN(newScale, kMaxScale / currentScale);
        newScale = MAX(newScale, kMinScale / currentScale);
        scale = newScale;

        CGAffineTransform transform = CGAffineTransformScale([[gesture view] transform], newScale, newScale);

        [gesture view].transform = transform;

        [self.collectionView.collectionViewLayout invalidateLayout];
    }

Alors, comment puis-je choisir la position de la UIPinchGesture?

Grâce

OriginalL'auteur santibernaldo | 2014-04-23