仅在 landscapeLeft 和 landscapeRight 之间旋转

Rotate only between landscapeLeft and landscapeRight

我有横向模式播放的视频。当设备方向改变时,视图只会在 landscapeLeft 和 landscapeRight 之间旋转。也就是说播放电影时没有人像模式。更何况除了电影视图,其他视图都是纵向模式,所以应用程序配置是纵向的。我怎样才能让电影视图只在横向模式下旋转。

这是我的部分代码。

appdelegate,

internal var shouldRotate = false

func application(_ application: UIApplication,
                 supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
    return shouldRotate ? .allButUpsideDown : .portrait
}

电影视图控制器,

    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    appDelegate.shouldRotate = true // or false to disable rotation
    let value = UIInterfaceOrientation.landscapeLeft.rawValue
    UIDevice.current.setValue(value, forKey: "orientation")

目前的问题是当方向改变时电影视图可能是纵向的。

.allButUpsideDown更改为.landscape

func application(_ application: UIApplication,
                 supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
    return shouldRotate ? .landscape : .portrait
}