【问题标题】:Enable and disable auto rotate programmatically using Swift?使用 Swift 以编程方式启用和禁用自动旋转?
【发布时间】:2015-12-25 11:01:32
【问题描述】:

我想通过使用 Swift 的按钮以编程方式禁用或启用自动旋转功能。我在想它可能能够以某种方式使用supportedInterfaceOrientations() 函数来完成,但是在浏览了有关如何完成的文献后,我感到非常困惑。有没有简单的解决方案?

【问题讨论】:

  • 您只能为您的应用“禁用”自动旋转,而不是整个操作系统!您是否意识到这一点并且只询问如何禁用您的应用的轮播?
  • 是的,当我按下按钮时,我想阻止我的应用旋转。然后我想触发应用程序在我按下其他按钮时保持旋转。对我来说,这似乎并不像我想象的那么简单。

标签: ios iphone swift ios9


【解决方案1】:

您可以为按钮创建一个操作,在代码中的某处设置布尔标志,并在视图控制器的shouldAutorotate 方法中返回该标志的值。如果您需要为所有视图控制器创建一个通用的基本视图控制器(继承)。

按钮动作示例:

@IBAction func toggleRotation(sender: Button) {
    // A made up AppConfig class with class method for setting and retrieving 
    // rotation flag.
    AppConfig.allowRotation(!AppConfig.allowRotation)
}

shouldAutorotate 示例:

override func shouldAutorotate() -> Bool {
    return AppConfig.allowRotation()
}

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class/#//apple_ref/occ/instm/UIViewController/shouldAutorotate

【讨论】:

  • 这对我来说是一个巨大的帮助 Snusmumrikken。我要试试这个,当按下按钮改变布尔值时: override func shouldAutorotate() -> Bool { return boolTrueOrFalse }
  • shouldAutorotate 方法返回反映您是否允许旋转的愿望的布尔值就足够了。 iOS 框架会在需要时自行调用shouldAutorotate 方法,然后获取布尔值。
猜你喜欢
  • 2011-03-26
  • 2013-07-03
  • 1970-01-01
  • 2013-03-24
  • 1970-01-01
  • 1970-01-01
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多