Tag: uiinterfaceorientation

以横向方式从iPhone 6 Plus主屏幕以纵向模式启动会导致错误的方向

这个问题的实际标题比我可能适合的长: 启动一个应用程序,其根视图控制器仅支持纵向,但在iPhone 6 Plus上支持横向方向,而主屏幕处于横向方向时,将导致应用程序的窗口处于横向方向,但该设备是在纵向方向。 总之,它看起来像这样: 当它应该是这样的: 重现步骤: 运行iOS 8.0的iPhone 6 Plus。 一个应用程序,其plist支持所有,但肖像颠倒的方向。 该应用程序的根视图控制器是一个UITabBarController。 一切,标签栏控制器及其所有后代子视图控制器从supportedInterfaceOrientations返回UIInterfaceOrientationMaskPortrait 。 从iOS主屏幕开始。 旋转到横向(需要iPhone 6 Plus)。 冷启动应用程序。 结果:界面取向破裂。 我想不出任何其他的方式来执行一个肖像方向, 除了完全禁用风景,我不能这样做:我们的网页浏览器模式视图控制器需要风景。 我甚至尝试了inheritanceUITabBarController并覆盖supportedInterfaceOrientations来返回肖像专用掩码,但是这个(即使是上面所有的其他步骤)也没有解决这个问题。 这是一个示例项目的链接,显示错误。

在iOS 8中处理方向变化的“正确”方法是什么?

有人可以告诉我在iOS 8中使用纵向和横向界面方向的“正确”或“最佳”方法吗? 看起来,我想用于这个目的的所有function都在iOS 8中被弃用,而且我的研究没有find清晰,优雅的select。 我真的应该看看宽度和高度来确定我自己,如果我们在纵向或横向模式? 例如,在我的视图控制器中,我应该如何实现下面的伪代码? if we are rotating from portrait to landscape then do portrait things else if we are rotating from landscape to portrait then do landscape things

iOS:加载时的设备方向

看来,当我的应用程序加载,它不知道它的当前方向: UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation]; if (orientation == UIDeviceOrientationPortrait) { NSLog(@"portrait");// only works after a rotation, not on loading app } 一旦我旋转设备,我得到一个正确的方向,但是当我加载的应用程序,而不改变方向,似乎使用[[UIDevice currentDevice] orientation]不知道当前的方向。 当我第一次加载我的应用程序时,有另一种方法来检查这个吗?

RootViewControlleranimation过渡,初始定向是错误的

所以我跟着这个线程: RootViewController切换过渡animation来将window.rootViewController从A传递到B到C.代码如下所示: [UIView transitionWithView:self.window duration:0.5 options: UIViewAnimationOptionTransitionFlipFromLeft animations:^{ self.window.rootViewController = newViewController; } completion:nil]; 问题是我的应用程序只能支持风景,但在rootViewController转换期间,新的视图控制器以纵向模式出现,而不是快速旋转到横向模式。 我确定: 我已经将UISupportedOrientation设置为横向(主页右键) 对于每个viewcontroller,在shouldAutoRotateToOrientation方法中,我只为横向设置 还有什么原因呢?

.bounds.size在iOS8中变成取向依赖吗?

我在iOS 7和iOS 8中运行以下代码: UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; BOOL landscape = (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight); NSLog(@"Currently landscape: %@, width: %.2f, height: %.2f", (landscape ? @"Yes" : @"No"), [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height); 以下是iOS 8的结果: Currently landscape: No, width: 320.00, height: 568.00 Currently landscape: Yes, width: 568.00, height: 320.00 与iOS 7中的结果相比: […]