2015-06-15 162 views
1

我如何確保允許的唯一方位是縱向或倒置縱向?屏幕的方向?

我在項目設置中進行了更改,但我無法在GameViewController中進行更改。

我需要在這個功能上的改變:

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

然而,「UIInterfaceOrientationMask」結構不具有一個選項,只允許縱向和倒掛的畫像。

回答

1

你必須允許在項目設置所有的方位,然後只允許取向除了GameViewController縱向或倒掛人像你的viewController:

// 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 
    } 
} 
+0

我似乎無法使用「|」運營商與.Portrait和.PortraitUpsideDown。 – dfgdfg

+0

試圖使用'rawValue' – Bannings

+0

謝謝。爲什麼我必須使用「UIInterfaceOrientationMask.Portrait.rawValue」而不是「.Portrait.rawValue」進行OR操作? – dfgdfg

0

你可能也想嘗試:

如果
return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown) 

不知道斯威夫特將支持位運算符。