代码之家  ›  专栏  ›  技术社区  ›  Duck

iPhone4模拟器报告屏幕尺寸为480x320?

  •  0
  • Duck  · 技术社区  · 14 年前

    我正在用iPhone4模拟器调试一个应用程序。我从模拟器菜单中选择了它(设备=iPhone4)。当我运行应用程序时,屏幕大小报告为480x320!!??

    我的这个应用程序(最初是为3G/3gs设计的)有什么需要修改的吗?这样才能在iphone4上运行(是的,我把所有的图片都重新制作成960x640,图片在捆绑包里,但它正在缩小到原来的一半大小。。。因为它是在3G/3GS模式下运行的,而不是高分辨率模式)。

    跑步

    CGRect cgRect =[[UIScreen mainScreen] bounds];
    

    将导致(0,0480320)。

    有什么线索吗?

    谢谢你的帮助。

    3 回复  |  直到 14 年前
        2
  •  3
  •   Jasarien    14 年前

    iPhone正朝着独立于分辨率的方向发展。这意味着事物不是用像素来衡量的,而是用点来衡量的。点并不总是对应于像素。

    iPhone3GS(及之前版本)的屏幕尺寸为480x320,以像素为单位。它们在这些设备上相对应,但在较新的设备(如iphone4)上却没有。

    这允许您将帧、点和大小值保持在其原始值,并且仍然支持更大分辨率的设备。

    加载@2x图像时,它们将作为原始分辨率加载,但其大小属性将减半,以便能够使用逻辑点测量。

    例如,原始大小为960x640的图像在请求时会报告其大小为480x320。

        3
  •  1
  •   Engin    13 年前

    不使用currentMode

    CGSize pixelBufferSize = [[[UIScreen mainScreen] currentMode] size];
    

    你会得到真正的解决