【问题标题】:Render differences between iPad simulator and device?iPad模拟器和设备之间的渲染差异?
【发布时间】:2012-08-14 23:27:11
【问题描述】:

我有一个应用程序,它最初是几年前设计的,专为最初的 iPhone 设计。我已经接受了它,我们正在寻求对其进行更新,以便它可以在 iPhone 4 和 iPad 上运行。里面有很多代码,所以发布示例很困难,因为它们可能不是来自正确的地方(而且它使用 irrlicht,大部分代码是 c++ 和一些 obj-c 类 - appDelegate 等)。

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

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

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

编辑1:

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

【问题讨论】:

  • 只要主视图是一个控制器,那么你就可以在这个东西上设置一个autoResizigMask。
  • 我之前实际上没有使用过 autoresizingmask,我已经用我添加的代码编辑了这个问题 - 它看起来像一个正确的实现吗?
  • yes autoresizingMask 使用得当,这是否解决了您的问题?
  • 没有。由于某种原因,它现在已经旋转了图像本身 - 并将其移动到屏幕的右侧。如果问题在于这个 autoresizingmask - iPhone 设备上会不会也是这样?正如我所说,它适用于那些。

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


【解决方案1】:

自己修复了它 - 不幸的是,当我最初“测试”它时,我手头没有 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 的方向?不知道为什么,但是现在可以了,感谢所有评论者的帮助。

【讨论】:

    猜你喜欢
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-28
    相关资源
    最近更新 更多