2010-12-11 4 views
0

Es ist ziemlich frustrierend, eine so einfache Aufgabe nicht ausführen zu können: Ich habe eine "App" mit einem einzigen Viewcontroller und darin eine einzelne UIImageView, die im Potrtait-Modus auf ein bestimmtes Bild initialisiert wird.Wie man ein UIImageView dreht?

Wenn nun das iPhone in den Landscape-Modus geschaltet wird und das shaoAutorotateToInterfaceOrientation-Ereignis ausgelöst wird und ich JA zurücksende, sieht mein resultierendes UIImageView völlig durcheinander: Entweder wird das Bild gestreckt, um den Querformat-Frame zu füllen (was natürlich lächerlich aussieht)) oder der obere und untere Rand des Bildes wird beschnitten.

Wie kann ich mit meiner UIImageview und dem enthaltenen Bild die Gerätedrehung elegant handhaben und normales Bild auch im Querformat anzeigen lassen?

Antwort

2

Stellen Sie das übergeordnete Element der Bildansicht UIViewautoresizesSubviews auf YES ein.

setzen auch die autoresizingMask der Bildansicht zu UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

+0

Danke und in der Tat ist das Bild nicht mehr angezapft. – jkally

+0

Aber es ist nicht das ganze Bild – jkally

+0

Im Querformat zeigt es nur die obere Hälfte des Bildes – jkally

0

Sie auch in Ihre UIImageView die contentMode suchen. aspectFill und aspectFit verhalten sich sehr unterschiedlich.

0

Sie können immer UIView von der Unterklasse entfernen und die Methode layoutSubviews überschreiben, um Ihre Untersichten manuell anzuordnen. Der Übergang in die Landschaft wird weiterhin animiert und Sie können mit den Unteransichten alles machen, was Sie wollen.

+0

Übrigens müssen Sie den contentMode auf 'UIViewContentModeRedraw' setzen –