当设备旋转处于 .PortraitUpsideDown 时,我永远不会收到通知
I never get notified when device rotation is in .PortraitUpsideDown
我唯一的 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”。为什么?似乎 Apple 不允许这种轮换。
你需要在你的基地 supportedInterfaceOrientations()
中 return 倒置肖像 UIViewController
方法实现应如下所示。
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.All.rawValue)
}
我唯一的 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”。为什么?似乎 Apple 不允许这种轮换。
你需要在你的基地 supportedInterfaceOrientations()
中 return 倒置肖像 UIViewController
方法实现应如下所示。
override func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.All.rawValue)
}