不能旋转接口方向为纵向倒挂(Cannot rotate interface orientation

2019-07-17 14:53发布

双方在iPhone模拟器和iPhone 3GS(iOS 6中)我不能管理设置方向为纵向颠倒。 我只有一个视图控制器。 我已在它下面的代码:

-(BOOL) shouldAutorotate{
 return YES; 
}

-(UIInterfaceOrientation) preferredInterfaceOrientationForPresentation{
 return UIInterfaceOrientationPortraitUpsideDown;
}

- (NSUInteger)supportedInterfaceOrientations{
 return UIInterfaceOrientationPortrait | UIInterfaceOrientationPortraitUpsideDown;
}

-(BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
  if (toInterfaceOrientation==UIInterfaceOrientationPortrait || toInterfaceOrientation==UIInterfaceOrientationPortraitUpsideDown) {
    return YES;
  }
 return NO;
}

我还添加了这AppDelegate.m:

-(NSUInteger) application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window{
    return UIInterfaceOrientationPortrait | UIInterfaceOrientationPortraitUpsideDown;
}

我还检查了plist文件,两个方向都存在那里。 在我的故事板,在模拟度量方向设置为推断。 我什么都不做,我applicationDidFinishLaunchingWithOptions,除了回报YES。 我刚刚加入一个UIImageView这个视图控制器内。 是否有可能使这个方向的工作?

Answer 1:

supportedInterfaceOrientations返回NSUInteger 。 它返回所有视图控制器支持,接口取向值的掩模的界面取向。

您需要返回定义的值UIInterfaceOrientationMask枚举,像下面所示:

- (BOOL)shouldAutorotate {
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations {
    return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown);
}


Answer 2:

我知道有这么工作,但对于其他人谁仍然坚持同样的问题的答案:

我有连接到Xcode的一个类似的问题:纵向旋转并没有被恢复,尽管支持YES- (BOOL) shouldAutorotateToInterfaceOrientation:适用于所有情况。 它原来是启用“支持的界面取向”在我的目标的项目编辑器的摘要窗口:

上述“iPhone / iPad的Depoloyment信息”的选择都没有这样做,这是出现控制什么模拟器将尽管我只是使用iPhone SIM卡的事实做了“iPad的部署信息”部分。 有一次,我会启用同样的方位在该节那么iPhone模拟工作,我能够测试时,模拟器旋转发生了什么事....



Answer 3:

我试过这个方法很多。 这似乎只是一个它的工作方式,但全球范围内通过应用程序,不仅对特定视图控制器。

首先,你必须去检查设备方向的倒挂目标的常规设置。

然后,在导航控制器扩展,覆盖supportedInterfaceOrientations方法

extension UINavigationController {
    override public func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
        return .All
    }
}


文章来源: Cannot rotate interface orientation to portrait upside down