如何在Swift中以编程方式更改设备方向?

时间:2018-06-19 20:33:24

标签: ios swift orientation

在我的应用中,我想更改设备方向。

我已经尝试了另一个主题相同的问题:

let value = UIInterfaceOrientation.landscapeRight.rawValue
UIDevice.current.setValue(value, forKey: "orientation")

但是,这似乎仅在已经允许了方向的情况下起作用,以便用户可以通过旋转设备来更改它,并且还可以通过动画来更改方向。但是我希望我的应用在VC1中只有一种方向,而在VC2中只有一种方向。用户不应影响方向,也不应有动画。这可能吗?

对不起,我英语不好。...

1 个答案:

答案 0 :(得分:0)

对于每个VC,请声明此变量w /所需的方向。这是肖像画。

  override var supportedInterfaceOrientations: UIInterfaceOrientationMask { return .portrait }   

然后在外观上强制执行所需的方向。

  override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    UIView.setAnimationsEnabled(false)
    UIDevice.current.setValue(UIInterfaceOrientation.portrait.rawValue, forKey: "orientation")
    UIView.setAnimationsEnabled(true)
  }