2009-10-01 9 views
0

En ce moment, quand j'appuyez deux fois sur le UIScrollView je lance ce code (pris du propre code exemple d'Apple):Comment faire un zoom UIScrollView à la taille de UIImage?

#define ZOOM_STEP 1.5 
float newScale = [imageScrollView zoomScale] * ZOOM_STEP; 
CGRect zoomRect = [self zoomRectForScale:newScale withCenter:tapPoint]; 
[imageScrollView zoomToRect:zoomRect animated:YES]; 

Cependant, j'ai le zoom au maximum à 3, mais j'aimerais comprendre comment faire un double clic sur zoom à 1px = 1px, par cela je veux dire, l'UIScrollView zoom sur la taille réelle de l'UIImage à l'intérieur. Mais je ne suis pas sûr de savoir comment calculer la taille de l'image afin de l'utiliser pour la mise à l'échelle du zoom?

Répondre

1

J'ai retrouvé l'exemple de code que vous utilisiez. C'était le projet TapToZoom dans ScrollViewSuite disponible au http://developer.apple.com/iphone.

J'ai modifié la ligne qui calcule la nouvelle échelle pour qu'elle soit le rapport entre la taille de l'image de la vue de défilement et la taille de l'image de la vue de l'image. Cela a l'effet que vous désirez de zoomer jusqu'à ce que l'image soit affichée à une résolution de 1: 1.

Remarque: Je me suis également assuré que UIImageView nommé imageView était une variable de classe. Dans l'exemple de code d'origine, il a été déclaré localement dans la méthode viewDidLoad:. L'inconvénient ici est que la vue de défilement et l'image ont le même rapport x/y. J'ai fait des maths sur la largeur.

- (void)tapDetectingImageView:(TapDetectingImageView *)view gotDoubleTapAtPoint:(CGPoint)tapPoint { 
    // double tap zooms in on them image to a 1:1 resolution (based on width) 
    float newScale = imageView.image.size.width/imageScrollView.frame.size.width; 
    CGRect zoomRect = [self zoomRectForScale:newScale withCenter:tapPoint]; 
    [imageScrollView zoomToRect:zoomRect animated:YES]; 
} 
+0

Merci, Brad! C'est totalement fait. Et comme vous le faites remarquer, hauteur/hauteur serait la même que la largeur/largeur. – runmad

Questions connexes