Ich versuche, die neue viewWillTransitionToSize
Methode zu implementieren, die in iOS 8 eingeführt wurde (alle anderen Rotationsmethoden sind veraltet). Ich würde gerne wissen, was das Äquivalent von didRotateFromInterfaceOrientation
jetzt ist, da wir eine Reihe von Bereinigungsaufgaben ausführen müssen und ich keinen Block sehen kann, dem wir zuweisen können, UIViewControllerTransitionCoordinator
um beim Übergang zu einem neuen aufgerufen zu werden Größe endet. Vielen Dank.
ios
iphone
objective-c
ios8
seltsam
quelle
quelle
- (void) viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator { [coordinator animateAlongsideTransition:^(id<UIViewControllerTransitionCoordinatorContext> context) { UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; // do whatever } completion:^(id<UIViewControllerTransitionCoordinatorContext> context) { }]; [super viewWillTransitionToSize: size withTransitionCoordinator: coordinator]; }
[UIDevice currentDevice].orientation
. Sie können dies auch inUIDeviceOrientationIsPortrait([UIDevice currentDevice].orientation)
oder leitenUIDeviceOrientationIsLandscape([UIDevice currentDevice].orientation)
. Hoffe das hilft!Die Swift-Version der Antwort von seltsam
quelle
print
nichts in mein Protokoll aufgenommen hat. Ich denke, weil diese Methode nicht aufgerufen wird. Können Sie sich noch etwas vorstellen, das eingesteckt werden müsste, damit dies funktioniert?iOS 10.3 & Swift 3
quelle
Die akzeptierte Antwort in Swift 3 :
Es funktioniert gut für mich 👍
quelle
let orient = newCollection.verticalSizeClass switch orient { case .compact: print("Lanscape") // Do something default: print("Portrait") // Do something else }
Da war die Frage: Was war das Äquivalent von
didRotateFromInterfaceOrientation
Ich dachte, ich würde den folgenden Code beisteuern:
Ich habe im Simulator auf einem iPhone getestet, aber meine Druckanweisungen werden nicht ausgeführt, wenn ich sie mit dem iPad teste, da sich die Eigenschaftssammlung nicht ändert.
Dies ist seltsam, da Apple genau dies empfiehlt :
quelle
[[UIApplication sharedApplication] statusBarOrientation]
ist in iOS9 veraltet, müssen Sie für verschiedene Geräte gegen UITraitCollection testen .quelle
Auf dem iPad gibt es keine Änderung der Merkmalssammlung. So erkennen Sie die Rotation von Anfang bis Ende. Hier ist die Swift 5-Syntax:
quelle