为了账号安全,请及时绑定邮箱和手机立即绑定

如何在iOS 6中以编程方式更改设备方向

如何在iOS 6中以编程方式更改设备方向

iOS
慕工程0101907 2019-10-09 14:39:10
在iOS 5中,我们可以通过编程方式更改设备方向,如下所示:[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];但是在iOS 6 setOrientation中已弃用,如何在iOS 6中以编程方式更改设备方向?
查看完整描述

3 回答

?
手掌心

TA贡献1942条经验 获得超3个赞

这是我的“五美分”,已在iOS7和ARC上进行了测试


[[UIDevice currentDevice] setValue:

                      [NSNumber numberWithInteger: UIInterfaceOrientationPortrait]

                            forKey:@"orientation"];

这不会像performSelector那样生成“泄漏”警告。


UIAlertView-使用此代码,当您在视图中打开UIAlertView时(会/已)出现时,您会注意到,除了该视图以外的所有视图都是纵向的(苹果,真的吗?)我无法强制视图重新定向,但是发现您在打开UIAlertView之前稍加延迟,然后视图就有时间更改方向。


请注意,我将从2014年12月9日开始发布我的应用程序周,如果发布会通过或失败,我将对其进行更新。


查看完整回答
反对 回复 2019-10-09
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

这不能回答如何更改设备方向,而是可以帮助您的其他信息。


iOS 6 UI界面方向-shouldAutorotateToInterfaceOrientation:不起作用


iOS 6不支持方法shouldAutorotateToInterfaceOrientation:不建议使用。以防万一,如果你是一个新手,谁只是盯着可可工作,并想知道为什么你的视图控制器在iOS 6中搞砸了完善的iOS 5中,只知道shouldAutorotateToInterfaceOrientation:不支持了。即使它在Xcode 4到4.3上都能很好地工作,在Xcode 4.5上也无法工作。


苹果提供了一种新的方法来以更清洁的方式完成此任务。您可以改用supportedInterfaceOrientations。它返回视图控制器支持的所有界面方向,以及界面方向值的掩码。


UIInterfaceOrientationMask枚举:


这些常量是用于指定视图控制器支持的接口方向的掩码位。


typedef enum {

    UIInterfaceOrientationMaskPortrait = (1 << UIInterfaceOrientationPortrait),

    UIInterfaceOrientationMaskLandscapeLeft = (1 << UIInterfaceOrientationLandscapeLeft),

    UIInterfaceOrientationMaskLandscapeRight = (1 << UIInterfaceOrientationLandscapeRight),

    UIInterfaceOrientationMaskPortraitUpsideDown = (1 << UIInterfaceOrientationPortraitUpsideDown),

    UIInterfaceOrientationMaskLandscape =

        (UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight),

    UIInterfaceOrientationMaskAll =

        (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft |

    UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskPortraitUpsideDown),

    UIInterfaceOrientationMaskAllButUpsideDown =

        (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft |

    UIInterfaceOrientationMaskLandscapeRight),

} UIInterfaceOrientationMask;

使用shouldAutorotateToInterfaceOrientation:方法:


-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {

    return UIInterfaceOrientationIsLandscapeRight(toInterfaceOrientation);

}

使用supportedInterfaceOrientations方法:


-(NSUInteger)supportedInterfaceOrientations{

    return UIInterfaceOrientationMaskLandscapeRight;

}

这些是UIViewController中有关iOS6中方向的添加方法


UIViewController preferredInterfaceOrientationForPresentation


UIViewController应该自动旋转


UIViewController支持的InterfaceOrientations


向UIApplication添加了有关iOS6中方向的方法


UIApplication支持的InterfaceOrientationsForWindow:


UIInterfaceOrientationMask


查看完整回答
反对 回复 2019-10-09
  • 3 回答
  • 0 关注
  • 500 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信