繁体   English   中英

iOS6中的自动旋转

[英]Autorotation in iOS6

我正在为iOS 6更新我的应用程序,并且对自动旋转的更改存在问题。 我的应用程序有一堆视图控制器,所有这些应该只支持纵向布局,除了1应该支持所有3个方向,除了颠倒。

如果我添加application:supportedInterfaceOrientationsForWindow:方法到app委托我是否必须在那里添加条件来检查我是否显示我希望能够旋转的VC?

该文档指出,如果我在VC上实现supportedInterfaceOrientations ,它应该覆盖app delegate方法,但似乎不是这种情况。 我在子VC上的方法中有一个日志语句,它在VC加载时调用一次,但在我旋转设备时没有调用,但是app委托中的方法是。

如果我从应用程序委托中完全删除该方法,我的VC的方向似乎完全取决于我的应用程序支持的界面方向设置。 这当然似乎是由于在创建VC时调用了一次supportedInterfaceOrientations方法,但从未在设备旋转时调用。

有没有人有任何想法或建议? 非常感谢。

替换[window addSubview:viewController.view]; window.rootViewController = viewController;

您还需要覆盖 - (BOOL)shouldAutorotate并返回“YES”。 这使得您可以使用“supportedInterfaceOrientations”声明VC支持的方向,然后在轮换时应调用“shouldAutorotate”。 如果您有任何导航控制器或tabbar,您可能需要将它们子类化以在其中执行相同的操作。 我最近自己有这个问题。

尝试这个...

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{

    if (UIInterfaceOrientationIsLandscape(interfaceOrientation))  
    { 
        // here to  implement landscope code
    }
    else
    {  
        // here to  implement setframePortrait
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM