C++ iPad模拟器和设备的渲染差异?
我有一个应用程序,它最初是几年前设计的,只是为最初的iPhone。我已经接受了,我们正在寻找更新,使其在iPhone4和iPad上工作。里面有很多代码,所以发布样本很困难,因为它们可能不是来自正确的地方(也使用RiLiHT,大多数代码是C++,带有一些Obj-C类-AppDeRead等)。 iPhone版本工作正常,而在xcode模拟器中,iPad版本工作正常。但是,在设备本身上,iPad版本无法正确渲染 该应用程序在所有版本中都是横向的,但在iPad上,尽管它将所有东西都定位在正确的方向上,但绘图区域似乎仍然使用纵向。 这是一个屏幕截图(忽略绿色方块,我刚刚隐藏了一些信息): 正如你所看到的,右边是空白的,它似乎将宽度限制为768,图像位于屏幕顶部(我可以想象它在1024处被截断)。考虑到iPhone版本运行良好,IB中是否存在我可能忽略的可能需要更改的设置 编辑1:C++ iPad模拟器和设备的渲染差异?,c++,objective-c,ios,interface-builder,C++,Objective C,Ios,Interface Builder,我有一个应用程序,它最初是几年前设计的,只是为最初的iPhone。我已经接受了,我们正在寻找更新,使其在iPhone4和iPad上工作。里面有很多代码,所以发布样本很困难,因为它们可能不是来自正确的地方(也使用RiLiHT,大多数代码是C++,带有一些Obj-C类-AppDeRead等)。 iPhone版本工作正常,而在xcode模拟器中,iPad版本工作正常。但是,在设备本身上,iPad版本无法正确渲染 该应用程序在所有版本中都是横向的,但在iPad上,尽管它将所有东西都定位在正确的方向上,但
UIView *contentView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
contentView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
self.view = contentView;
self.view.autoresizesSubviews = YES;
我自己修复了它——不幸的是,当我最初“测试”它时,我手头没有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
}
出于某种原因,我必须告诉它翻转iPad的方向?不知道为什么,但它现在可以工作了,谢谢所有评论的人的帮助。只要主视图是控制器,那么你就可以在这个东西上设置autoResizigMask。我以前实际上没有使用过autoResizigMask,我已经用我添加的代码编辑了这个问题-它看起来像是一个正确的实现吗?是的autoresizingMask使用正确,这是否解决了您的问题?否。出于某种原因,它现在已经旋转了图像本身-并将其移到屏幕的右侧。如果问题出在这个自动重设屏幕上,那么iPhone设备上的情况是否也会如此?正如我所说的,它在这些方面效果很好。