自动旋转代码适用于 iPhone 但不适用于 iPad

Posted

技术标签:

【中文标题】自动旋转代码适用于 iPhone 但不适用于 iPad【英文标题】:Auto rotating code works on iPhone but not on iPad 【发布时间】:2017-11-14 19:03:37 【问题描述】:

这是仅适用于 iphone 的代码。 我正在制作一个可以在两种设备上运行的通用应用程序,因此它是相同的应用程序。

**//Automatically rotates the view to landscape
    let orientation: UIDeviceOrientation = UIDevice.current.orientation
    //If landscape right the rotate right
    if orientation == UIDeviceOrientation.landscapeLeft
    
        UIView.animate(withDuration: 0.5, animations:
            
                () -> Void in
                let value = UIInterfaceOrientation.landscapeRight.rawValue
                UIDevice.current.setValue(value, forKey: "orientation")
        )


    
    else
    
        UIView.animate(withDuration: 0.5, animations:
            
                () -> Void in
                let value = UIInterfaceOrientation.landscapeLeft.rawValue
                UIDevice.current.setValue(value, forKey: "orientation")
        )

    **

【问题讨论】:

【参考方案1】:

这是您检查的一种可能性...

在项目的设置中,在构建目标的“常规”选项卡下,有“部署信息”部分,您可以在其中选择“设备”选项(您可能在“通用”中拥有该选项)。下面是设备方向选择。这里有一个,嗯,有趣的功能。

如果您在“设备”处于通用模式时检查某些方向,它只会将该设置应用于 iPhone 版本。如果您将设备选项切换到 iPad,选项可能会有所不同。您需要做的是将选择切换到 iPhone,在那里应用您想要的方向,将其切换到 iPad,再次应用方向,然后最后将设备设置为通用。

我有一种预感(未经您的代码测试),如果您尝试应用此处不支持的方向,您的代码将无能为力。

【讨论】:

以上是关于自动旋转代码适用于 iPhone 但不适用于 iPad的主要内容,如果未能解决你的问题,请参考以下文章

Webview 适用于 iphone 但不适用于 ipad

screenShot代码不适用于ipad,适用于iphone

Materialise Sidenav 不适用于 iOS 或 iPhone,但适用于所有其他设备

Swift pushViewController 适用于 iPad 但不适用于 iPhone

iOS 项目适用于 iPhone,但不适用于模拟器

HTML5 音频播放器适用于 safari/Chrome,但不适用于 iPhone