Handhabung Ansicht Rotationen
standardmäßig die UIViewController Klasse zeigen Ansichten in nur Portrait-Modus. Um zusätzliche Orientierungen zu unterstützen, müssen Sie die shouldAutorotateToInterfaceOrientation:
Methode überschreiben und YES für beliebige Ausrichtungen zurückgeben, die Ihre Unterklasse unterstützt. Wenn die Autoresizing-Eigenschaften Ihrer Ansichten richtig konfiguriert sind, kann das alles sein, was Sie tun müssen. Die UIViewController-Klasse bietet jedoch zusätzliche Hooks, mit denen Sie nach Bedarf zusätzliche Verhaltensweisen implementieren können: .
So deaktivieren Sie vorübergehend Funktionen, die nicht benötigt werden oder sonst verursachen Probleme bei der Orientierung ändern, können Sie die willRotateToInterfaceOrientation:duration:
Methode außer Kraft setzen und die notwendigen Aktionen dort auszuführen. Sie können dann die didRotateFromInterfaceOrientation:
Methode überschreiben und sie verwenden, um diese Funktionen wieder zu aktivieren, sobald die Orientierungsänderung abgeschlossen ist.
Wenn Sie benutzerdefinierte Animationen während einer Ausrichtung ändern möchten, können Sie dies in einer von zwei Möglichkeiten tun. Orientierungsänderungen, die an verwendet werden, treten in zwei Schritten auf, wobei Benachrichtigungen am Anfang, Mitte, und Endpunkten der Drehung auftreten. In iPhone OS 3.0 wurde die Unterstützung jedoch hinzugefügt, um die Ausrichtung Änderungen in einem Schritt durchzuführen. Die Verwendung einer einstufigen Orientierungsänderung neigt dazu, schneller zu sein als das ältere zweistufige Verfahren und ist und wird generell für jeden neuen Code empfohlen.
So fügen Sie Animationen für ein einstufiges Orientierungsänderung, überschreiben die willAnimateRotationToInterfaceOrientation:duration:
Methode und führen Sie Ihre Animationen dort. Um die älteren zweistufigen Methode zu verwenden, außer Kraft setzen eine oder beide der willAnimateFirstHalfOfRotationToInterfaceOrientation:duration:
und willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration:
Methoden, um Ihre Animationen vor jedem Schritt zu konfigurieren.Sie müssen nur eine Technik wählen und nur die Methoden überschreiben, die mit dieser Technik verbunden sind. Wenn Sie die Methode mit der zweistufigen Methode überschreiben, verwendet der View-Controller standardmäßig diese Methode .
Leider hilft das nicht. Ich verwende keine der Orientierungsfunktionen und dieser Fehler tritt immer noch auf. Scheint ein Fehler in OS4 zu sein. – typeoneerror
Diese Antwort ist richtig für einige Situationen, aber nicht für andere. Sicher, dieser Abschnitt in der Dokumentation erklärt den Fehler NICHT vollständig - es gibt spezifische Fehler in Apples UIImagePickerController/presentModalController, die diese Fehlermeldung auslösen (und die sie NICHT auslösen sollte). Immer noch versuchen, einen Workaround zu finden :(. – Adam
@ Adam: http://StackOverflow.com/Questions/2878947/getting-using-two-stage-Rotation-Animation-warning-with-uiImagepickerController – geon