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