在iOS中旋转屏幕时如何执行某些操作?

时间:2015-02-06 16:03:31

标签: ios swift rotation

我正在尝试在设备屏幕上创建动作。

在Apple documentation中,我读过您必须使用此方法:

 override func willRotateToInterfaceOrientation(toInterfaceOrientation: UIInterfaceOrientation, duration: NSTimeInterval) {
        println("I rotate.")
        self.tabBar.frame = CGRectMake(0, 80, self.view.bounds.size.width, self.view.bounds.size.height);
    }

但是当我在日志中转动屏幕时不打印“我旋转。”

修改

这些是项目的设置: enter image description here

3 个答案:

答案 0 :(得分:1)

在iOS 8中已弃用willRotateToInterfaceOrientation功能,如Apple文档here中所示。请参阅StackOverflow上的讨论here

答案 1 :(得分:0)

从文档中,你也应该打电话给super:

  

此方法的实现必须在执行期间的某个时刻调用super。

这不应该导致你看到的问题。仔细检查您的目标是否允许旋转。转到您的项目,选择目标,并在一般情况下确保您已选中其他方向。如果您只选中了一个方向,则可以旋转设备,但不会改变方向。

答案 2 :(得分:0)

这种方法在哪里?只有在UIViewController

的子类中才会调用它 编辑:似乎在iOS 8中没有在UITabBarController子类中调用willRotateToInterfaceOrientation(这似乎是你正在使用的),但在iOS 7中调用它。尽管方法是不推荐使用,它仍然在iOS 8中的UIViewController的直接子类中调用。但是,对于iOS 8及更高版本,最好使用新的viewWillTransitionToSize:withTransitionCoordinator: