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

xcode ios 7和ios 8屏幕边界错误,ios,objective-c,ipad,screen-orientation,Ios,Objective C,Ipad,Screen Orientation,大家好,我正在使用最新的xcode和2个设备(相同)。一个使用iOS 7,另一个使用iOS 8 在iOS 7的纵向模式下,我的分辨率为1024x768(横向) 在iOS 8上的纵向模式下,我的分辨率为768x1024(实际纵向) 问题是,我使用的方法与任何人都可以帮助我构建函数并更轻松地访问它的方法相同?任何帮助都将不胜感激。谢谢 这是我的密码 CGFloat screenWidth = self.view.bounds.size.width; CGFloat screenHeight = se

大家好,我正在使用最新的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"];

在这里,我为您制作了一个方法,您可以在第一次运行时执行它,它将在NSUserDefault中保存屏幕分辨率

它只适用于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"];

你的应用程序是否锁定为纵向(所以宽度总是<高度)?呜呜,谢谢,这正是我需要的,非常感谢:)当你可以随时获取它时,你到底为什么要将它保存到NSUserDefaults(或任何地方)??如果设备在保存值后从iOs6更新到7会怎么样??在我看来,这是一个有缺陷的答案,建立在假设基础上的薄弱设计。苹果改变了他们这样做的方式,你怎么知道他们不会再这样做了?使用fMinf()/fMaxf()或类似函数来获取大小维度,而不是假设行为和检查版本号。抱歉,这很懒。@Jef如果他每次都在viewdidLoad调用该方法并重写NSUserDefaults,那么是的。但是如果你每次都打电话,为什么不在你需要的时候打电话呢?也就是说,为什么要把它保存在任何地方?在下一次(或本次)发布时,该设备是否可能插入不同大小的屏幕?如果出现这种情况,我们想要旧的屏幕尺寸还是当前的?这是对NSUserDefaults的滥用/误用,没有明显的原因/好处,NSUserDefaults用于持久化数据,这些数据可能会因时间或安装而异。这不是针对个人的,我没有投反对票,只是提出建设性的批评,给你们一个完善代码的机会