Ich habe ein UIScrollView mit einem UIImageView und ich habe einige Probleme, um das richtige Verhalten zu erhalten, wenn das iPhone rotiert.Bild skalieren, um Bildschirm auf iPhone Rotation passen
Ziel: Ich versuche folgende zu erhalten, wenn von Hoch- auf Querformat gehen:
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| | AAAAAA |
|DDDDDDD| --> | CCCCCC |
|EEEEEEE| | EEEEEE |
|FFFFFFF| |_____GGGGGG_____|
|GGGGGGG|
---------
Hier wird das gesamte Bild im Hochformat skaliert wird in der Landschaftsansicht passen, wenn das iPhone dreht. Es ist auch zentriert. Ich versuche auch, das Seitenverhältnis beizubehalten. Die Benutzerinteraktion ist ebenfalls aktiviert, und der Benutzer sollte den gesamten Bildschirm zum Schwenken/Zoomen des Bilds verwenden können.
Derzeit ist die folgende autoresizingMask
auf der Scrollview Ich habe:
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
Aber dies gibt die folgende
_________
|AAAAAAA|
|BBBBBBB| _________________
|CCCCCCC| |AAAAAA |
|DDDDDDD| --> [BBBBBB |
|EEEEEEE| [CCCCCC |
|FFFFFFF| [DDDDDD__________|
|GGGGGGG|
---------
Diese Einstellung bewahrt Skala und Offset.
Frage: Ist es möglich, dieses Verhalten mit geeigneten autoresizingMask
zu erhalten? Wenn nicht, sollte man wohl
scrollView.autoresizingMask = UIViewAutoresizingNone;
und manuell eingestellt zoomScale
und contentOffset
für die UIScrollView auf Rotation. Aber wo sollte das gemacht werden? Was ist mit der Animation dieser Veränderung?
Lösung: Durch sehr leicht Modifizieren der Antwort unten ich das obige Verhalten mit den Code unten bekam:
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight);
scrollView.autoresizingMask =(UIViewAutoresizingFlexibleWidth
| UIViewAutoresizingFlexibleHeight);
imageView.contentMode = UIViewContentModeScaleAspectFit;
scrollView.contentMode = UIViewContentModeCenter;
Danke! Das war schnell. Um das richtige Verhalten zu bekommen, musste ich unseren Code leicht ändern (siehe oben), aber das brachte mich in die direkte Richtung. – user467225
funktioniert überhaupt nicht –