我不敢相信这是不可能的。这只是每个人肯定都需要的东西之一。
所以,这个:
[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]
。然后,这将根据应用程序调整主窗口坐标变换矩阵的方式为您提供正确的值。
关于iphone - 如何找出屏幕方向,纵向还是横向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11376216/