Skalieren Sie das Bild, um es an die iPhone-Drehung anzupassen

8

Ich habe eine UIScrollView, die eine UIImageView enthält, und ich habe Probleme, das richtige Verhalten zu erhalten, wenn sich das iPhone dreht.

Ziel: Ich versuche beim Übergang von Hochformat zu Querformat Folgendes zu erreichen:

%Vor%

Hier wird das gesamte Bild in der Hochformatansicht so skaliert, dass es in die Querformatansicht passt, wenn sich 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.

Momentan habe ich das folgende autoresizingMask in der scrollView:

%Vor%

Aber das ergibt folgendes

%Vor%

Mit dieser Einstellung werden Skalierung und Offset von der oberen linken Ecke beibehalten.

Frage: Ist es möglich, dieses Verhalten mit geeigneten autoresizingMask zu erreichen? Wenn nicht, sollte man wahrscheinlich

setzen %Vor%

und setzen Sie zoomScale und contentOffset für die UIScrollView bei Rotation manuell. Aber wo sollte das gemacht werden? Was ist mit der Animation dieser Änderung?

Lösung: Indem ich die folgende Antwort sehr leicht modifiziere, habe ich das obige Verhalten verwendet Der folgende Code:

%Vor%     
user467225 18.11.2010, 21:12
quelle

2 Antworten

3

Versuchen Sie Folgendes:

%Vor%

Ich bin mir nicht sicher, ob die Bildansicht automatisch in der Größe eines UIScrollView geändert wird. Wenn die Autoresierung nicht funktioniert, können Sie versuchen, den Rahmen selbst auf rotieren, um der Größe des Bildlaufs anzupassen.

    
David Liu 18.11.2010, 21:36
quelle
-1

Ich hatte eine ähnliche Situation, eine sehr einfache scrollView mit 3 imageViews ('vorherige', 'aktuelle' und 'nächste'), um eine Reihe von Fotos anzuzeigen.

Die Fotos hatten alle eine Größe für das iPad, aber eine Mischung aus Quer- und Hochformat. Ich wollte, dass sie in den Bildschirm passen (d. H. Letterboxed, falls erforderlich), wobei das Seitenverhältnis beibehalten wird. Ich fand, dass ich das nur mit den 3 imageViews machen musste, damit es funktionierte:

%Vor%     
coco 15.02.2012 19:52
quelle