J'ai un UIScrollView contenant un UIImageView et j'ai quelques problèmes pour obtenir le comportement correct lorsque l'iPhone tourne.Redimensionner l'image pour l'adapter à la rotation de l'iPhone
Objectif: Je suis en train d'obtenir ce qui suit lors du passage du mode portrait au paysage:
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| | AAAAAA |
|DDDDDDD| --> | CCCCCC |
|EEEEEEE| | EEEEEE |
|FFFFFFF| |_____GGGGGG_____|
|GGGGGGG|
---------
Ici l'image entière dans le mode portrait est mis à l'échelle pour tenir dans la vue du paysage lorsque l'iPhone tourne. Il est également centré. J'essaie aussi de préserver le ratio d'aspect. L'interaction de l'utilisateur est également activée et l'utilisateur doit pouvoir utiliser l'intégralité de l'écran pour effectuer un panoramique ou un zoom sur l'image.
Actuellement, je donne les résultats suivants autoresizingMask
sur la ScrollView:
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
Mais cela donne le
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| |AAAAAA |
|DDDDDDD| --> [BBBBBB |
|EEEEEEE| [CCCCCC |
|FFFFFFF| [DDDDDD__________|
|GGGGGGG|
---------
suivant Ce réglage conserve l'échelle et le décalage du coin supérieur gauche.
Question: Est-il obtenir ce comportement en utilisant autoresizingMask
approprié? Dans le cas contraire, il faut probablement mettre
scrollView.autoresizingMask = UIViewAutoresizingNone;
et régler manuellement zoomScale
et contentOffset
pour le UIScrollView sur la rotation. Mais, où cela devrait-il être fait? Qu'en est-il de l'animation de ce changement?
Solution: En très légèrement modifier la réponse ci-dessous, je suis le comportement ci-dessus en utilisant le code ci-dessous :
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth
| UIViewAutoresizingFlexibleHeight);
imageView.contentMode = UIViewContentModeScaleAspectFit;
scrollView.contentMode = UIViewContentModeCenter;
Merci! C'était rapide. Pour obtenir le comportement correct, j'ai dû changer légèrement notre code (voir ci-dessus), mais cela m'a mis dans la direction directe. – user467225
Ne fonctionne pas du tout –