2016-05-31 10 views
0

Ich bemühe mich sehr, das Bild mit nur einem Tippen zu vergrößern, aber noch keinen Erfolg. Ich habe eine Karussellansicht mit 6 Bildern, die gut funktioniert, aber ich möchte, dass das jeweilige Bild vergrößert/verkleinert wird, wenn auf das Bild in der Karussellansicht getippt wird. Jede Hilfe wird sehr geschätzt.Wie kann ich ein Bild in einer iCarousel-Ansicht auf einmal tippen?

Antwort

0

Zuerst deklarieren Sie die TapGestureRegcognizer dann addSubview in Ihrem UIImageView. Verwenden Sie diesen Code in Ihre viewDidLoad:

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)]; 

[doubleTap setNumberOfTapsRequired:1]; 

[imageview addGestureRecognizer:doubleTap]; 

dann, wenn Sie die UIImageView einzigen Antippen klicken, rufen Sie die folgenden Methoden,

- (void)handleDoubleTap:(UIGestureRecognizer *)gestureRecognizer { 
     // zoom in 
     float newScale = [myscrollview zoomScale] * 2; 

     if (newScale > self.myscrollview.maximumZoomScale){ 
      newScale = self.myscrollview.minimumZoomScale; 
      CGRect zoomRect = [self zoomRectForScale:newScale withCenter:[gestureRecognizer locationInView:gestureRecognizer.view]]; 

      [myscrollview zoomToRect:zoomRect animated:YES]; 

     } 
     else{ 

      newScale = self.myscrollview.maximumZoomScale; 
      CGRect zoomRect = [self zoomRectForScale:newScale withCenter:[gestureRecognizer locationInView:gestureRecognizer.view]]; 

      [myscrollview zoomToRect:zoomRect animated:YES]; 
     } 
    } 

- (CGRect)zoomRectForScale:(float)scale withCenter:(CGPoint)center { 

    CGRect zoomRect; 

    // the zoom rect is in the content view's coordinates. 
    // At a zoom scale of 1.0, it would be the size of the imageScrollView's bounds. 
    // As the zoom scale decreases, so more content is visible, the size of the rect grows. 
    zoomRect.size.height = [myscrollview frame].size.height/scale; 
    zoomRect.size.width = [myscrollview frame].size.width/scale; 

    // choose an origin so as to get the right center. 
    zoomRect.origin.x = center.x - (zoomRect.size.width/2.0); 
    zoomRect.origin.y = center.y - (zoomRect.size.height/2.0); 

    return zoomRect; 
} 

seine für mich arbeiten, ihre hilfreich hoffen.

+0

hi @Iyyappan, ich habe es versucht .. es funktioniert, was ich will ist "das Bild in Karussell sehen" zu vergrößern. – iDeveloper