Ios 屏幕的方向?
如何确保只允许纵向或倒置纵向 我在项目设置中进行了更改,但在GameViewController中进行更改时遇到问题 我需要在此函数中进行更改:Ios 屏幕的方向?,ios,iphone,swift,sprite-kit,Ios,Iphone,Swift,Sprite Kit,如何确保只允许纵向或倒置纵向 我在项目设置中进行了更改,但在GameViewController中进行更改时遇到问题 我需要在此函数中进行更改: override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { if UIDevice.currentDevice().userInterfaceIdiom == .Phone { return .AllButUpsideDown
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return .AllButUpsideDown
} else {
return .All
}
}
但是,“UIInterfaceOrientationMask”结构没有只允许纵向和倒置纵向的选项。您可能需要尝试:
return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown)
不确定Swift是否支持位运算符 您必须在项目设置中允许所有方向,然后在viewController中只允许纵向或倒置纵向,除了
GameViewController
:
// BaseViewController
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return UIInterfaceOrientationMask.Portrait.rawValue | UIInterfaceOrientationMask.PortraitUpsideDown.rawValue
} else {
return .All
}
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return .AllButUpsideDown
} else {
return .All
}
}
最后在GameViewController
中:
// BaseViewController
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return UIInterfaceOrientationMask.Portrait.rawValue | UIInterfaceOrientationMask.PortraitUpsideDown.rawValue
} else {
return .All
}
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if UIDevice.currentDevice().userInterfaceIdiom == .Phone {
return .AllButUpsideDown
} else {
return .All
}
}
我似乎无法将“|”运算符与.patriot和.patriot upsidedown一起使用。正在尝试使用
rawValue
谢谢。为什么我必须使用“UIInterfaceOrientationTask.Portrait.rawValue”而不是“.Portrait.rawValue”来执行OR操作?我认为.Portrait.rawValue
也可以工作。实际上,这取决于返回值类型。它适用于uiInterfaceOrientationTask
而不是Int
。