如何找出纵向或横向的屏幕方向?
问题描述:
我不敢相信这是不可能的。这只是每个人都必须要求的事情之一。如何找出纵向或横向的屏幕方向?
所以,这样的:
[UIScreen currentScreen] bounds];
在我的iPhone返回320的宽度,无论手机是否是纵向还是横向。所以我做了这个辅助方法:
+(CGRect)screenFrame {
CGRect frame = [UIScreen mainScreen].bounds;
if (UIDeviceOrientationIsPortrait([[UIDevice currentDevice] orientation])) {
return frame;
}
else {
CGRect newFrame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.height, frame.size.width);
return newFrame;
}
}
当设备平放除了伟大的工程,显然这使得它认为这是在景观,即使屏幕不改变为横向。
我该如何调整它才能让它工作?
答
最好的指导(主要是因为'铺设平面'的方向)是使用[[UIApplication sharedApplication] statusBarOrientation]
。这会根据应用程序如何调整主窗口的坐标变换矩阵给出正确的值。