2016-08-11 1 views
0

J'utilise le geste Pincer pour effectuer un zoom arrière sur une imageVeille Maintenant, je peux définir la limite à laquelle cette limite ne permettra pas à l'utilisateur de faire un zoom arrière. J'utilise le code ci-dessous pour cela.Gesture Limite de liaison pour le geste de pincement IOS

func handlePinch(recognizer : UIPinchGestureRecognizer) 
    { 
     imageView.transform = CGAffineTransformScale(imageView.transform, 
                 recognizer.scale, recognizer.scale) 

     recognizer.scale = 1.0 
} 

Répondre

0
(void)handlePinchGesture:(UIPinchGestureRecognizer *)gestureRecognizer { 

    if([gestureRecognizer state] == UIGestureRecognizerStateBegan) { 
     // Reset the last scale, necessary if there are multiple objects with different scales 
     lastScale = [gestureRecognizer scale]; 
    } 

    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan || 
     [gestureRecognizer state] == UIGestureRecognizerStateChanged) { 

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

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

     CGFloat newScale = 1 - (lastScale - [gestureRecognizer scale]); 
     newScale = MIN(newScale, kMaxScale/currentScale); 
     newScale = MAX(newScale, kMinScale/currentScale); 
     CGAffineTransform transform = CGAffineTransformScale([[gestureRecognizer view] transform], newScale, newScale); 
     [gestureRecognizer view].transform = transform; 

     lastScale = [gestureRecognizer scale]; // Store the previous scale factor for the next pinch gesture call 
    } 
}