渲染iPad模拟器和设备之间的差异?

时间:2012-05-15 13:31:03

标签: c++ objective-c ios interface-builder

我有一个应用程序,最初是几年前设计的,仅适用于原始iPhone。我已经接受了它,我们正在寻找更新它,以便它可以在iPhone 4和iPad上运行。其中有相当多的代码,因此发布样本很困难,因为它们可能不是来自正确的地方(也使用irrlicht,大部分代码都是带有几个obj-c类的c ++ - appDelegate等)。 p>

iPhone版本运行良好,在xcode模拟器中,iPad版本运行良好。但是在设备本身上,iPad版本无法正确呈现。

该应用程序在所有版本中都是风景,但在iPad上虽然它以正确的方向定向所有内容,但绘图区域似乎仍然使用纵向方向。 这是一个截图(忽略绿色方块,我刚刚隐藏了一些信息):http://i.imgur.com/50CKA.png

正如您所看到的右侧是空白的,它似乎将宽度限制为768,图像越过屏幕顶部(我想它会在1024处切断)。鉴于iPhone版本运行良好,IB中是否有可能需要更改的设置我可能会忽略?

Edit1:

UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
        contentView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
        self.view = contentView;
        self.view.autoresizesSubviews = YES;

1 个答案:

答案 0 :(得分:0)

我自己修复了 - 不幸的是,当我最初'测试'它时,我没有ipad可供使用,所以有人正在测试每个构建非常慢。抓住一个并很快找到答案:

UIScreen* mainscr = [UIScreen mainScreen];

//original width and height
w = mainscr.currentMode.size.width;
h = mainscr.currentMode.size.height;


//fixed method
if((int)mainscr.currentMode.size.width % 1024 == 0)
    {
        w = mainscr.currentMode.size.width;
        h = mainscr.currentMode.size.height;
        //correct for ipad
    }
    else 
    {
        h = mainscr.currentMode.size.width;
        w = mainscr.currentMode.size.height;
        //correct for iphone
    }

出于某种原因,我必须告诉它翻转ipads的方向?不知道为什么,但它现在有效,感谢所有评论的人的帮助。