gpt4 book ai didi

iphone - UIDeviceOrientationFaceUp - 如何区分纵向和横向?

转载 作者:行者123 更新时间:2023-12-03 18:20:06 25 4
gpt4 key购买 nike

我正在尝试确定设备处于纵向还是横向模式。如果设备没有朝上,我的代码可以很好地工作。如果它确实面朝上(且方向 == 5),则无法区分纵向和横向。如果 UIDeviceOrientation 为 FaceUp,是否可以确定横向/纵向的“方向”?

我的代码:

UIDeviceOrientation interfaceOrientation = [[UIDevice currentDevice] orientation];

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

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

if (interfaceOrientation == UIDeviceOrientationIsPortrait(interfaceOrientation)) {
NSLog(@"PORTRAIT!!!");
}

最佳答案

您不应混淆 UIDeviceOrientationUIInterfaceOrientation,它们不同,但如其声明所示相关

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 可以具有不明确的值(UIDeviceOrientationFaceUpUIDeviceOrientationFaceDown >UIDeviceOrientationUnknown)。

在任何情况下,您都不应该尝试使用 [[UIDevice currentDevice]orientation] 确定 UIViewController 的方向,因为无论设备方向是什么,UIViewController interfaceOrientation 属性可以不同(例如,如果您的应用根本不旋转为横向)[[UIDevice currentDevice]orientation] 可以是 UIDeviceOrientationLandscapeLeftviewController.interfaceOrientation 可以是 UIInterfaceOrientationPortrait)。

更新:从 iOS 8.0 开始,[UIViewController interfaceOrientation] 已弃用。提供替代方案here[[UIApplication sharedApplication] statusBarOrientation]。这也会返回UIInterfaceOrientation

关于iphone - UIDeviceOrientationFaceUp - 如何区分纵向和横向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8019171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com