Jest to popularne pytanie, ale nie mogłem znaleźć rozwiązania, które działało na Swift 2.Swift 2: obracanie ekranu tylko na pełnym ekranie wideo
Ta aplikacja jest tylko portretowa. Ale podczas oglądania pełnoekranowych filmów, takich jak YouTube, użytkownicy powinni mieć możliwość obracania się do krajobrazu.
na obiektywnych C, było to najłatwiejsze rozwiązanie i używany przez dłuższy czas:
AppDelegate file:
static NSString * const VIDEO_CONTROLLER_CLASS_NAME_IOS7 = @"MPInlineVideoFullscreenViewController";
static NSString * const VIDEO_CONTROLLER_CLASS_NAME_IOS8 = @"AVFullScreenViewController";
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
if ([[window.rootViewController presentedViewController] isKindOfClass:NSClassFromString(VIDEO_CONTROLLER_CLASS_NAME_IOS7)] ||
[[window.rootViewController presentedViewController] isKindOfClass:NSClassFromString(VIDEO_CONTROLLER_CLASS_NAME_IOS8)]) {
return UIInterfaceOrientationMaskAllButUpsideDown;
} else {
return UIInterfaceOrientationMaskPortrait;
}
}
Pozwala to na wszystkie kierunki, podczas gdy film jest na pełnym ekranie. W przeciwnym razie, tylko Portret.
Ale ciężko mi pracować nad Swift. Czy ekran można obracać, gdy filmy pełnoekranowe są odtwarzane w Swift?
iOS 8 nie obraca się, ale działa świetnie na iOS 9. Dzięki! – tomDev
Aby upewnić się, że aplikacja powróci do portretu, lepiej użyć "supportedInterfaceOrientations" zamiast "supportedInterfaceOrientationsForWindow". W ten sposób, gdy wideo zostanie odrzucone, orientacja automatycznie powróci do portretu. – tomDev
Dzięki, to był produkt uboczny pośpiechu i używania autouzupełniania ... Cieszę się, że to działa. – JAL