我想知道我的设备的当前方向。
if([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait)
{
}
但是这种做法
答案 0 :(得分:2)
您应该启用设备方向的通知,如下所示:
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]
然后您可以查询当前方向
编辑:
来自文档:“此属性的值始终返回0,除非通过调用beginGeneratingDeviceOrientationNotifications
启用了方向通知”(其中0为UIDeviceOrientationUnknown
)
答案 1 :(得分:1)
我明白了,
if (UIDeviceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation )) {
}
这项工作非常完美。
答案 2 :(得分:0)
在
[[UIDevice currentDevice] orientation]
将返回
之一UIDeviceOrientationPortrait
UIDeviceOrientationPortraitUpsideDown
UIDeviceOrientationLandscapeLeft
UIDeviceOrientationLandscapeRight
常数。如果你只想检查它是“垂直”还是“水平”,无论是倒置还是左右,只需检查:
if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation]) {...}
如果要检测方向更改,请覆盖
-(void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {}
或
-(void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {...}
方法
这对你有帮助吗?
答案 3 :(得分:0)
接受的答案中提到的解决方案对我有用。
虽然我的stmt 1没有使用以下逻辑执行
myOrientation = [[UIApplication sharedApplication] statusBarOrientation];
if(myOrientation == UIInterfaceOrientationPortrait) ||
(myOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
// stmt 1;
}
这个对我有用
if (UIDeviceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation ))
{
// stmt 1;
}