【问题标题】:When I run iPhone app on iPad the screen resolution is wrong. How to fix this?当我在 iPad 上运行 iPhone 应用程序时,屏幕分辨率是错误的。如何解决这个问题?
【发布时间】:2013-08-05 11:01:01
【问题描述】:

我遇到了一个奇怪的问题。我开发了一个针对具有 Retina 3.5 和 4 的 iPhone 设备系列的应用程序。我一直使用 iPhone 5 模拟器来测试所有 UI 和功能,一切都很好,但我知道我必须测试推送通知。我有 iPad 4(型号 MD522ZP/A)作为 iOS 6 设备。当我在它上面运行我的应用程序时,所有的 UI 布局都出错了。最奇怪的问题是当我尝试使用以下代码检查显示分辨率时:

NSLog(@"RESOLUTION = %@", NSStringFromCGSize([UIScreen mainScreen].bounds.size));

我得到了这个:RESOLUTION = {320, 480}。但它是 iPhone 3 分辨率!为什么 iPad 没有使用 Retina 3.5/4 分辨率?我该如何解决?我不想仅为 iPad 测试创建单独的 xibs,但我想在其上测试我的应用程序,以便所有 UI 元素都适合屏幕。

希望得到帮助。

【问题讨论】:

  • “我不想只为 iPad 测试创建单独的 xib”——这根本上是错误的。在 iPad 上以缩放模式运行仅限 iPhone 的应用程序是允许旧应用程序运行的一个拐杖。没有人应该开发原生不支持 iPad 的 新的 iOS 应用程序。
  • 要正确运行,您必须在项目中为 ipad 创建单独的 xibs/storyboard。请参阅此链接,在通用应用部分:developer.apple.com/library/ios/#documentation/iPhone/…,否则 ipad 将继续模拟 iphone 设备

标签: iphone ios ipad cocoa-touch retina-display


【解决方案1】:

没有错。它正在做完全正确的事情。所有对大小的引用都以点为单位,而不是像素。当您获得边界时,无论是否为视网膜,所有 3.5 英寸屏幕上的分辨率都是 320x480。在任何 3.5 英寸视网膜设备上尝试。您将获得相同的日志输出。

在运行仅限 iPhone 的应用程序时,iPad 不会模拟 4" 设备。它将始终是 3.5" iPhone 兼容模式。

所以看到 320x480 是预期的正确尺寸。

这样想。视网膜 iPad 将显示仅 iPhone 的应用程序,就像它在 3.5 英寸视网膜 iPhone 上运行一样。非视网膜 iPad 将显示仅 iPhone 应用程序,就像它在 3.5 英寸非视网膜 iPhone 上运行一样。

【讨论】:

  • "它将永远是 3.5" iPhone 兼容模式。" Forever? 3.5" 应该很快就会过时,re 6 和 6 plus。新的 iPhone 应用程序可能合理地期望至少 4 英寸,并且在压缩到 3.5 英寸时会很丑。
  • @vonlost 问题是关于在 iPad 上运行仅限 iPhone 的应用程序,而不是在最新的 iPhone 上(提出问题一年多后)。新的 iPhone 应用程序仍然可以在 3.5 英寸 iPhone 上运行。您需要为此编写代码,这样它们才不会难看。
  • 还是同一个问题,时间在流逝,我们无法充分利用 iPhone 5/6 的房地产,做 3.5 做不到的事情”。我很高兴放弃销售在 4 上获得一个只能在 5 和 6 上运行的应用程序。我已经被限制在 iOS 7+ 上,这不是问题。但在 iPad 上尤其浪费,那里有这么多可用空间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
相关资源
最近更新 更多