我唯一的ViewController中有以下方法。

override func willAnimateRotationToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
    println("willAnimateRotationToInterfaceOrientation")
    super.willAnimateRotationToInterfaceOrientation(toInterfaceOrientation, duration: duration)

    switch (toInterfaceOrientation) {
    case .Portrait: println(".Portrait")
    case .PortraitUpsideDown: println(".PortraitUpsideDown")
    case .LandscapeRight: println(".LandscapeRight")
    case .LandscapeLeft: println(".LandscapeLeft")
    case .Unknown: println(".Unknown")
    }
}


我在项目设置中启用了所有可能的方向



但是,即使我在模拟器中旋转360°(iPhone也是如此),我也永远不会在控制台上打印“ .PortraitUpsideDown”。为什么?好像苹果公司不允许这种轮换。

最佳答案

您需要在基础supportedInterfaceOrientations()UIViewController中专门颠倒放置肖像

方法的实现应如下所示。

override func supportedInterfaceOrientations() -> Int {
    return Int(UIInterfaceOrientationMask.All.rawValue)
}

关于ios - 当设备旋转为.PortraitUpsideDown时,我永远不会收到通知,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28915067/

10-12 06:01