UIPinchGestureRecognizer. Vergrößern Sie die Position der Finger, nicht nur die Mitte

Ich kann es benutzenUIPinchGestureRecognizer zum Vergrößern der Ansicht von aUICollectionViewCell, aber es ist egal, wo Sie anfangen, die zu machenUIPinch Geste, immer geht der Zoom in die Mitte der Ansicht. Zum Beispiel möchte ich im oberen linken Bereich der Ansicht kneifen, und der Zoom muss an der Stelle erstellt werden, an der ich den Bildschirm berühre. Aber wenn ich das tue, wird der Zoom in der Mitte der Ansicht erstellt.

Dies ist der Code, den ich zum Zoomen benutze:

 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];
    }

Wie kann ich die Position der UIPinchGesture auswählen?

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage