屏幕方向?

时间:2015-06-15 02:52:05

标签: ios iphone swift sprite-kit

如何确保允许的唯一方向是纵向或上下纵向?

我在项目设置中进行了更改,但是我在GameViewController中进行更改时遇到了问题。

我需要对此功能进行更改:

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
        return .AllButUpsideDown
    } else {
        return .All
    }
}

但是,“UIInterfaceOrientationMask”结构没有只允许纵向和倒置肖像的选项。

2 个答案:

答案 0 :(得分:1)

您必须允许项目设置中的所有方向,然后只允许在viewController中使用纵向或上下纵向,但GameViewController除外:

// BaseViewController
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
        return UIInterfaceOrientationMask.Portrait.rawValue | UIInterfaceOrientationMask.PortraitUpsideDown.rawValue
    } else {
        return .All
    }
}

最后在GameViewController

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
        return .AllButUpsideDown
    } else {
        return .All
    }
}

答案 1 :(得分:0)

您可能想尝试:

return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown)

不确定Swift是否支持按位运算符。