- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试确定设备处于纵向还是横向模式。如果设备没有朝上,我的代码可以很好地工作。如果它确实面朝上(且方向 == 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]orientation]
确定 UIViewController 的方向,因为无论设备方向是什么,UIViewController interfaceOrientation
属性可以不同(例如,如果您的应用根本不旋转为横向)[[UIDevice currentDevice]orientation]
可以是 UIDeviceOrientationLandscapeLeft
而 viewController.interfaceOrientation
可以是 UIInterfaceOrientationPortrait
)。
更新:从 iOS 8.0 开始,[UIViewController interfaceOrientation]
已弃用。提供替代方案here是[[UIApplication sharedApplication] statusBarOrientation]
。这也会返回UIInterfaceOrientation
。
关于iphone - UIDeviceOrientationFaceUp - 如何区分纵向和横向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8019171/
我正在尝试确定设备处于纵向还是横向模式。如果设备没有朝上,我的代码可以很好地工作。如果它确实面朝上(且方向 == 5),则无法区分纵向和横向。如果 UIDeviceOrientation 为 Face
这里是菜鸟问题。 我用以下方法检测方向: UIInterfaceOrientation orientation = [[UIDevice currentDevice] orientation]; 一切
我正在使用 AVFoundationFramework 来捕捉视频。当我开始捕捉时,我根据当前设备方向设置视频方向。我这样做: startRecordingOrientation = [[UIDevi
我是一名优秀的程序员,十分优秀!