在iOS中限制纵向方向到集合视图似乎不起作用

时间:2015-05-23 11:08:00

标签: ios swift uicollectionview

我的应用中有多个viewControllers,我想将某些视图仅限于纵向方向。我通过覆盖如下的

覆盖了shouldAutoRotate和supportedInterfaceOrientations来实现这一点
    override func shouldAutorotate() -> Bool {
        return false
    }

    override func supportedInterfaceOrientations() -> Int {

        return Int(UIInterfaceOrientation.Portrait.rawValue)
    }

我对UICollectionView采用了同样的方法,但它似乎没有用。我想知道这是否是实现它的正确方法。对此的帮助将非常感激。提前谢谢!

1 个答案:

答案 0 :(得分:0)

在iOS 8或更高版本中,如果要控制每个视图控制器的允许方向:

  1. 确保"支持的界面方向"在change_column中允许您希望应用能够使用的所有方向。 (或者只是检查正确的"设备方向"在Info.plist文件的Xcode UI界面中

  2. 每个视图控制器,实现(示例限制为纵向):

    Info.plist
  3. 如果您的视图控制器嵌入在另一个视图控制器(如UINavigationController或UITabBarController或两者)中,您可以遇到的问题。

    我怀疑这是你所描述的情况。

    如果是这样,所涉及的所有视图控制器都需要实现override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask { return UIInterfaceOrientationMask.Portrait } 方法。 AFAIK,如果您在视图控制器上方有一个UINavigationController,则需要子类并使用实现的方法创建自己的导航控制器。