iOS   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – UIDeviceOrientationFaceUp – 如何区分纵向和横向?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图找出设备是在纵向还是横向模式。如果设备没有面对,我的代码工作得很好。如果它面朝上(和方向== 5),它将不区分纵向和横向。如果UIDeviceOrientation是FaceUp,还有无论如何确定“风景/人像”方面的“取向”?

我的代码

UIDeviceOrientation interfaceOrientation = [[UIDevice currentDevice] orientation];

NSLog(@"orientation: %d",interfaceOrientation);

if (interfaceOrientation == UIDeviceOrientationIsLandscape(interfaceOrientation)) {
    NSLog(@"LANDSCAPE!!!");
}

if (interfaceOrientation == UIDeviceOrientationIsPorTrait(interfaceOrientation)) {
    NSLog(@"PORTraiT!!!");
}

解决方法

你不应该混淆UIDeviceOrientation和UIInterfaceOrientation,它们是不同的,但是如他们的声明所示相关

typedef enum {
   UIDeviceOrientationUnkNown,UIDeviceOrientationPorTrait,UIDeviceOrientationPorTraitUpsideDown,UIDeviceOrientationLandscapeLeft,UIDeviceOrientationLandscapeRight,UIDeviceOrientationFaceUp,UIDeviceOrientationFaceDown
} UIDeviceOrientation;

typedef enum {
   UIInterfaceOrientationPorTrait           = UIDeviceOrientationPorTrait,UIInterfaceOrientationPorTraitUpsideDown = UIDeviceOrientationPorTraitUpsideDown,UIInterfaceOrientationLandscapeLeft      = UIDeviceOrientationLandscapeRight,UIInterfaceOrientationLandscapeRight     = UIDeviceOrientationLandscapeLeft
} UIInterfaceOrientation;

UIDeviceOrientation会告诉您设备的方向是什么。 UIInterfaceOrientation告诉你界面的方向是什么,由UIViewController使用。 UIInterfaceOrientation将显然是纵向或横向,而UIDeviceOrientation可以具有不明确的值(UIDeviceOrientationFaceUp,UIDeviceOrientationFaceDown,UIDeviceOrientationUnkNown)。

在任何情况下,您不应该尝试使用[[UIDevice currentDevice]方向]来确定UIViewController的方向,无论UIViewController的interfaceOrientation属性可以是不同的设备方向(例如,如果您的应用程序不旋转到横向所有[[UIDevice currentDevice] orientation]可以是UIDeviceOrientationLandscapeLeft,而viewController.interfaceOrientation可以是UIInterfaceOrientationPorTrait)。

更新:
从iOS 8.0起,不推荐使用[UIViewController interfaceOrientation]。另外提供的here是[[UIApplication sharedApplication] statusBarOrientation]。这也返回UIInterfaceOrientation。

大佬总结

以上是大佬教程为你收集整理的iphone – UIDeviceOrientationFaceUp – 如何区分纵向和横向?全部内容,希望文章能够帮你解决iphone – UIDeviceOrientationFaceUp – 如何区分纵向和横向?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。