7
votes

iPhone Uiscrollview and UiImageView - Réglage du zoom initial

J'utilise le code suivant pour charger une image dans une vue de défilement. L'image se charge toujours à 100% de zoom. Existe-t-il un moyen de la mettre à charger à un autre niveau de zoom, dites .37?

J'ai essayé ScrollView.zoomcale = .37, mais cela ne semblait pas fonctionner P>

UIImageView *tempImage = [[UIImageView alloc]initWithImage:[UIImage imageWithData:data]];
        self.imageView = tempImage;

        scrollView.contentSize = CGSizeMake(imageView.frame.size.width , imageView.frame.size.height);
        scrollView.maximumZoomScale = 1;
        scrollView.minimumZoomScale = .37;
        scrollView.clipsToBounds = YES;
        scrollView.delegate = self;

        [scrollView addSubview:imageView];


0 commentaires

5 Réponses :


3
votes

Il y a un ZoomScale Propriété que vous pouvez définir.


3 commentaires

Mais prenez note que, comme Brodie4598 a indiqué que cela devrait être fait après l'ajout de l'image de l'image à la vue ScrollView.


Notez également que le ViewForZoomingScrollscrolls: sera appelé lorsque vous définissez la propriété Zoomscale, vous devez donc vous assurer qu'il renvoie la vue correcte à ce stade.


C'est très important ce que @Paul_sns a déclaré. J'avais un comportement étrange avec zoomer the ScrollView. C'est parce que j'ai défini une image après avoir réglé le zoomcale.



18
votes

zoomer ne fonctionne que lorsque vous implémentez le ViewForZoomingScrollView: code> Délégué rappel.

-(UIView *) viewForZoomingInScrollView:(UIScrollView *)inScroll {
  return imageView;
}


1 commentaires

Je ne le savais pas et cela a résolu mon problème. Merci beaucoup!



13
votes

Je l'ai compris ... j'utilisais ScrollView.zoomscale = 0,37; Avant de charger le code de modification de l'image et que cela fonctionne bien. XXX


0 commentaires

0
votes

Vous devez définir le zoom initial lorsque la vueWillappapper et non lorsque la vueDidDload pour elle aussi fonctionne.


1 commentaires

Je ne comprends pas ce que tu veux dire. Explique clairement.



1
votes

J'étais face à la même question ..
J'ai utilisé la méthode intégrée: Scrollviewforimage

Cela définira le zoom initial au niveau 5

[self.scrollvieforimage setzoomscale: 5 animation: oui];

code pour le niveau de zoom minimum

self.scrollviewforimage.minimumzoomcale = 1;

code pour le niveau de zoom maximal

self.scrollvieworimage.maximumzoomcale = 12,0;

J'espère que cela aidera


0 commentaires