2014-09-21 41 views
0

我有一个应用程序横向运行。我已经使用下面的代码来使它在iOS 8上工作。此代码完美地适用于所有设备的模拟器。但是,当我在iPhone 5设备上运行它时,布局是错误的。在阅读了其他一些关于这里和其他地方的问题后,我相信屏幕边界在横向模式下运行时已经在iOS 8上交换了,但似乎并非总是如此。iOS 8屏幕边界设备和横向模拟器的不同设置

CGRect screenBound = [[UIScreen mainScreen] bounds]; 
CGSize screenSize = screenBound.size; 
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) 
{ 
    ScreenHeight = screenSize.width; 
    ScreenWidth = screenSize.height; 
} 
else 
{ 
    ScreenHeight = screenSize.height; 
    ScreenWidth = screenSize.width; 
} 

为什么模拟器在做一些与设备完全不同的事情?这是否仅影响iPhone 5或所有iPhone/iPad?我无法访问运行不同iOS版本的所有设备,因此依靠模拟器来提供准确的结果。

有没有更可靠的方法来实现这个?

回答

0

我已经设法解决这个问题,如下所示。这适用于所有运行iOS 8的iPhone/iPad设备,其中应用程序仅设置为在横向模式下运行。不知道为什么我最初发布的代码不起作用。

CGRect screenBound = [[UIScreen mainScreen] bounds]; 
CGSize screenSize = screenBound.size; 

if (screenSize.width > screenSize.height) 
{ 
    ScreenHeight = screenSize.width; 
    ScreenWidth = screenSize.height; 
} 
else 
{ 
    ScreenHeight = screenSize.height; 
    ScreenWidth = screenSize.width; 
} 
相关问题