gpt4 book ai didi

ios - swift 2 : screen rotation only on full screen video

转载 作者:搜寻专家 更新时间:2023-10-30 21:53:18 26 4
gpt4 key购买 nike

这是一个热门问题,但我找不到任何适用于 Swift 2 的解决方案。

该应用程序仅支持纵向。但是在观看全屏视频(例如 YouTube)时,用户应该能够旋转到横向。

在 Objective C 上,这是最简单的解决方案,我使用了很长时间:

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;

}

}

当视频全屏显示时,这允许所有方向。否则,仅纵向。

但我很难在 Swift 上完成这项工作。是否可以在 Swift 上播放全屏视频时让屏幕旋转?

最佳答案

像这样的东西怎么样?

func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask {

var classesToCheckFor = [AnyClass]()

if let ios7Class = NSClassFromString("MPInlineVideoFullscreenViewController") {
classesToCheckFor.append(ios7Class)
}

if let ios8Class = NSClassFromString("AVFullScreenViewController") {
classesToCheckFor.append(ios8Class)
}

for classToCheckFor in classesToCheckFor {
if (self.window?.rootViewController?.presentedViewController?.isKindOfClass(classToCheckFor) != nil) {
return .AllButUpsideDown
}
}

return .Portrait
}

NSClassFromString 可能会返回 nil,但 isKindOfClass 需要一个非可选的 AnyClass。我正在检查是否每个类都可以加载到平台上,将加载的类添加到一个数组中,然后遍历类数组,检查 presentedViewController 是否是无论是类(class)。如果是,我们返回 .AllButUpsideDown。如果两个类都无法加载,或者 presentedViewController 不属于任何一个类,则我们返回 .Portrait

关于ios - swift 2 : screen rotation only on full screen video,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35353681/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com