首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在iOS上检测设备的方向?

如何在iOS上检测设备的方向?
EN

Stack Overflow用户
提问于 2011-04-06 07:12:14
回答 8查看 100.5K关注 0票数 72

我有一个关于如何在iOS上检测设备方向的问题。我不需要接收更改通知,只需要接收当前方向本身。这似乎是一个相当简单的问题,但我还不能理解它。以下是我到目前为止所做的工作:

代码语言:javascript
复制
UIDevice *myDevice = [UIDevice currentDevice] ;
[myDevice beginGeneratingDeviceOrientationNotifications];
UIDeviceOrientation deviceOrientation = myDevice.orientation;
BOOL isCurrentlyLandscapeView = UIDeviceOrientationIsLandscape(deviceOrientation);
[myDevice endGeneratingDeviceOrientationNotifications];

在我看来,这应该是可行的。我使设备能够接收设备方向通知,然后询问它所处的方向,但之后它就不工作了,我不知道为什么。

EN

回答 8

Stack Overflow用户

发布于 2012-03-25 08:22:14

非常老的线程,但没有真正的解决方案。

我也遇到过同样的问题,但我发现获取UIDeviceOrientation并不总是一致的,所以改用下面的代码:

代码语言:javascript
复制
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;

if(orientation == 0) //Default orientation 
    //UI is in Default (Portrait) -- this is really a just a failsafe. 
else if(orientation == UIInterfaceOrientationPortrait)
    //Do something if the orientation is in Portrait
else if(orientation == UIInterfaceOrientationLandscapeLeft)
    // Do something if Left
else if(orientation == UIInterfaceOrientationLandscapeRight)
    //Do something if right
票数 120
EN

Stack Overflow用户

发布于 2011-04-06 07:15:26

UIViewController有一个interfaceOrientation属性,您可以访问该属性来查找视图控制器的当前方向。

至于你的例子,这应该是可行的。当你说它不工作时,你是什么意思?与您预期的结果相比,它给您带来了什么结果?

票数 9
EN

Stack Overflow用户

发布于 2011-04-06 07:24:32

您是否解锁了设备方向的硬件锁?在我的iPad 1的边缘有一个。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5559652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档