Swift - 仅允许在iPad上旋转

fel*_*iao 35 ipad ios swift

我怎么能允许我在iOS 8.3 SDK上使用Swift编写的通用应用程序仅支持iPhone上的纵向模式,而是支持iPad上的纵向和横向模式?

我知道在过去这已经在AppDelegate中完成了.我怎么能在Swift中这样做?

chr*_*nse 87

您可以通过编程方式进行,或者更好,您可以简单地编辑项目的Info.plist(这应该更实用,因为它是全局设备配置)

只需添加"支持的界面方向(iPad)"键即可

在此输入图像描述


Kil*_*tor 7

你可以通过编程方式完成

override func shouldAutoRotate() -> Bool {
    if UIDevice.currentDevice().userInterfaceIdiom == .Pad {
        return true
    }
    else {
        return false
    }
}
Run Code Online (Sandbox Code Playgroud)

然后

override func supportedInterfaceOrientations() -> Int {
    return UIInterfaceOrientation.Portrait.rawValue
}
Run Code Online (Sandbox Code Playgroud)

或您希望默认拥有的任何其他旋转方向.

这应该检测您使用的设备是否是iPad并且仅允许在该设备上旋转.

编辑:因为你只想在iPhone上画像,

 override func supportedInterfaceOrientations() -> Int {
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
        return UIInterfaceOrientation.Portrait.rawValue
    }
    else {
        return Int(UIInterfaceOrientationMask.All.rawValue)
    }
}
Run Code Online (Sandbox Code Playgroud)


ali*_*izx 6

我不确定 Chris 的答案是否仅通过复制和粘贴“支持的界面方向(iPad)”键即可;可能不是从info.plist. 实现不同方向的支撑。您可以打开info.plistXML 源并进行如下编辑:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>


<key>UISupportedInterfaceOrientations~ipad</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array> 
Run Code Online (Sandbox Code Playgroud)

xcode UI 有一个简单的方法。转到您的项目设置。在“常规”选项卡中选择您的目标,然后在“部署信息”部分中,您可以首先选择 iphone/ipad 并分别标记您希望为每个设备支持的设备方向,然后将设备更改为“通用”。它将在引擎盖下生成上述 xml。 在此处输入图片说明

此处的“通用”选项显示了 iPhone 和 iPad 之间常见的选项。