2011-08-10 3 views
0

J'ai un UIScrollView, qui contient UIImageViews. Toutes les images conservent leur rapport d'image - je veux dire par exemple que l'image de portrait est haute et étroite, tandis que l'image de paysage est courte et large. J'ai environ 4 images en même temps sur l'écran (2 verticalement, 2 horizontalement), alors je peux défiler vers le bas.Rotation de l'iPhone et maintien des proportions de l'image

Mon problème est de faire pivoter l'appareil. J'utilise

[self.imageScrollView setAutoresizingMask: UIViewAutoresizingFlexibleLeftMargin];// (etc) 

et la même méthode pour imageView. Mais les images ne gardent pas leurs proportions. Si je mets: UIViewAutoresizingFlexibleWidth - l'image est large mais la hauteur est trop petite UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight - l'image est étirée horizontalement, tandis que verticalement, elle est trop petite.

Je dois faire pivoter l'appareil (portrait-> paysage), faire ces 2 images (que j'ai l'un à côté de l'autre) pour combler l'écart et garder ces proportions d'images.

Toute aide est fortement appréciée!

+0

En d'autres termes: je veux faire tourner le dispositif, faites pivoter l'image à l'intérieur UIImageView et enregistrez-est x: rapport y (ne pas s'étirer). – Vive

Répondre

0
imageView.contentMode = UIViewContentModeScaleAspectFill; 

Ce résolu mon problème ^^

0

Essayez cette fonction ..

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation]; 
     if (orientation == UIDeviceOrientationPortrait) { //Device is portait 
      //Resize the images to fit this orientation 
         image1.frame = CGRectMake(x,x,x,x); 
     } 
     else { 
      //Device is landscape.. 
     } 
    return YES; 
} 
+0

Il n'y a pas d'autre moyen? Il y aurait tellement de choses à faire que ça peut être assez lent de cette façon ..: / – Vive

Questions connexes