2010-02-01 7 views
0

Je souhaite faire pivoter mon UIImageView et régler la taille en fonction du format. Mais j'ai quelques problèmes avec ça. D'abord je colle ici mon code, ensuite j'explique le problème. Donc, ces deux lignes définissent la taille et le contenu de mon imageView. Lorsque je fais cela, l'image apparaît correctement. Donc, lorsque l'appareil est tourné, j'attrape la notification de rotation etUIImageView Rotation et redimensionnement

if ([self isLandscape]) { 
    CGFloat aspect = myHeight/myWidth; 
    imageView.size = CGSizeMake(myWidth/aspect, myWidth); 
    [self rotateView:imageView withDegree:degree]; 
    imageView.origin = CGPointMake(x, y); 
} else { 
    [self rotateView:imageView withDegree:degree]; 
    imageView.origin = CGPointMake(x, y); 
    imageView.size = CGSizeMake(myWidth, myHeight); 
} 

Alors la rotation est terminée. Mais vous pouvez voir que je fais aussi un redimensionnement.
Le problème est que mon imageView a une taille minimale qui ne peut pas être remplacée. Mais j'ai compris que si je change la propriété contentMode de mon imageView de UIViewContentModeCenter en UIViewContentModeScaleAspectFit alors ça marchera bien mais la taille est plus petite que ce à quoi je m'attendais. Pourquoi donc? :(Comment puis-je résoudre ceci? S'il vous plaît si vous avez de l'aide

Répondre

1

ScaleAspectFit ne fera que mettre à l'échelle le contenu afin qu'il soit tout visible et aucun écrêtage se produit.Si vous voulez que votre contenu pour remplir la vue et éventuellement avoir une certaine écrêtage, vous devez utiliser UIViewContentModeScaleAspectFill à la place.

Cependant, si tout ce que vous voulez faire est de respecter une taille minimale pour chaque dimension, vous pouvez utiliser la macro à la place MAX.

CGSize mySize = CGSizeMake(myWidth, myHeight); 
mySize.x = MAX(mySize.x, myXMin); 
mySize.y = MAX(mySize.y, myYMin); 
imageView.size = mySize; 

aussi, juste vérifier que vous vraiment signifié pour que la taille du paysage soit (width*width/height, width) et pas seulement (height, width)

Questions connexes