【问题标题】:Rotation of uiscreen SWIFTuiscreen SWIFT 的旋转
【发布时间】:2016-05-18 15:05:25
【问题描述】:

我在 info.plist 文件中禁用了除纵向模式之外的所有方向模式,因为我不希望应用旋转。但是我希望一个视图控制器仅处于横向模式。我可以在视图控制器的类中以编程方式更改方向吗?或者我可以在 info.plist 中禁用自动旋转但启用纵向和横向模式吗?

我也知道我可以通过UIDevice.currentDevice().orientation.isLandscape检查手机的方向

但是当你以不同的方式握住手机时,有没有一种方法会被执行?

【问题讨论】:

    标签: ios iphone swift orientation info.plist


    【解决方案1】:

    如果您只想以与 info.plist 中大多数其他 VC 不同的方向呈现一个 VC,则必须设置一组包含所有支持的方向的值。
    为避免 VC 以特定方向旋转的可能性,您应该覆盖

    - shouldAutorotate
    - supportedInterfaceOrintation
    - preferredInterfaceOrientationForPresentation
    

    你会发现这个答案也很有用,一个实际的例子How to force view controller orientation in iOS 8?

    【讨论】:

    • 是否可以扩展 UIViewController 并为这个视图控制器单独覆盖方法?
    • 如果您阅读了我发布的链接,用户在回答中解释了如何通过覆盖应用程序委托中的方法来做到这一点
    • 是否可以在 info.plist 中禁用自动旋转?
    • 但是当应用程序处于纵向时,我无法以编程方式切换到横向
    • 正确,如果你想管理多个方向,正如我已经说过的,你必须选择你想要支持的所有方向,并且使用我上面写的方法进行细粒度控制。
    【解决方案2】:

    在 UIViewController.h 中查看 shouldAutorotate 和 supportedInterfaceOrientations 方法。

    【讨论】:

    • 我尝试使用supportedInterfaceOrientations 方法,但视图没有旋转。此外,当只允许肖像时,应该自动旋转方法也不起作用。还是他们只是一起工作?
    猜你喜欢
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 2015-02-14
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2019-12-24
    相关资源
    最近更新 更多