xcode ios 7 和 ios 8 屏幕边界错误

xcode ios 7 and ios 8 screen bounds bug

大家好,我使用的是最新的 xcode 和 2 台设备(相同)。一个 iOS 7,另一个 iOS 8

在 iOS 7 的纵向模式下,我得到分辨率 1024x768(横向) 在 iOS 8 的纵向模式下,我得到的分辨率是 768x1024(实际纵向)

问题是我使用相同的方法,任何人都可以帮助我构建函数并更轻松地访问它吗?任何帮助,将不胜感激。谢谢

这是我的代码

CGFloat screenWidth = self.view.bounds.size.width;
CGFloat screenHeight = self.view.bounds.size.height;
[[NSUserDefaults standardUserDefaults] setInteger:screenWidth forKey:@"scwidth"];
[[NSUserDefaults standardUserDefaults] setInteger:screenHeight forKey:@"scheight"];

这里我给你做了一个方法,你可以先执行运行,它会将screenResolutions保存在NSUserDefaults

它只适用于 iOS6++

-(void)loadResolution{
    NSString *ver = [[UIDevice currentDevice] systemVersion];
    int ver_int = [ver intValue];
    if(ver_int > 6)
    {
        CGFloat screenWidth = self.view.bounds.size.width;
        CGFloat screenHeight = self.view.bounds.size.height;
        [[NSUserDefaults standardUserDefaults] setInteger:screenWidth forKey:@"scwidth"];
        [[NSUserDefaults standardUserDefaults] setInteger:screenHeight forKey:@"scheight"];

    }

    if(ver_int > 7.9)
    {

        CGFloat screenWidth = self.view.bounds.size.width;
        CGFloat screenHeight = self.view.bounds.size.height;
        [[NSUserDefaults standardUserDefaults] setInteger:screenWidth forKey:@"scwidth"];
        [[NSUserDefaults standardUserDefaults] setInteger:screenHeight forKey:@"scheight"];

    }
    NSLog(@"Loading Resolution...OK");

}

用这个检索屏幕边界

NSInteger screenWidth = [[NSUserDefaults standardUserDefaults] integerForKey:@"scwidth"];
NSInteger screenHeight = [[NSUserDefaults standardUserDefaults] integerForKey:@"scheight"];