2016-08-11 3 views
0

Ich benutze Pinch Geste, um ein Bild zu verkleinernVIEW Jetzt kann ich das Limit festlegen, dass Down bis zu diesem Limit nicht Benutzer auszoomen lassen. Ich verwende den folgenden Code.Geste Binding Limit für Pinch Geste IOS

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

     recognizer.scale = 1.0 
} 

Antwort

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