【问题标题】:Xcode 6 resizes app automatically for iPhone 6 and 6 plusXcode 6 为 iPhone 6 和 6 plus 自动调整应用程序大小
【发布时间】:2015-02-09 03:48:24
【问题描述】:

我在 iPhone 5 英寸故事板上使用 Xcode 5 为 iOS 7 开发应用程序。我准备了我的应用程序及其按钮、图像和其他内容以适应 iPhone 5 的屏幕尺寸,然后以编程方式优化应用程序以适应 iPhone 4 和 4s。

然后 Xcode 6 出现了,还有两款新设备,iPhone 6 和 iPhone 6 plus。我在想我将不得不再次花几个小时以编程方式优化这些分辨率的应用程序。

但我尝试在我的新 iPhone 6 上运行我的应用程序,但奇怪的事情发生了。应用程序本身为我创造了一切。一切都在正确的位置和正确的大小,我什么也没做。

我看到 Xcode 6 现在使用 Size Classes 为多种设备开发应用程序。

但我没有在我的项目中使用大小类和自动布局,它可以工作吗?

然后我打开了新项目。在我的新项目中,调整大小不再像这样工作了。所以它不会自动调整我的按钮、视图和其他东西的大小。

有人知道发生了什么吗?

【问题讨论】:

  • 如果您没有准备好新尺寸的正确资源,系统会自动将您的应用程序放大以适应新的屏幕尺寸。因此,您的应用可以正常运行,但不会达到原生 6/6+ 应用的大小。
  • @jshier 所以使用 Size Classes 对我来说更好吗?如果我在 Sprite Kit 中开发游戏会发生什么?系统会自动改变精灵的大小?
  • iOS 不需要使用尺寸类来停止缩放您的应用程序。您只需要一个适当分辨率的启动图像。
  • @jshier 可能是一个奇怪的问题。我必须在哪些选项中选择,我的应用程序将以不同的分辨率放大我的对象?就像我的旧项目一样?
  • 你没有。它会在运行时自动完成,具体取决于您的启动图像是否是新屏幕的正确分辨率。

标签: ios iphone xcode5 xcode6


【解决方案1】:

如果您不使用启动故事板或包含新 iPhone 6 尺寸的启动图像,则整个屏幕将扩展以填充新设备尺寸(启用放大辅助功能设置时也会发生同样的情况)。 iPhone 6 用户会注意到更大的字体、图像等。

这就是正在发生的事情。问题是您无法利用额外的屏幕空间(额外的像素)。如果你觉得这很酷,那就保留它,但是当你最终优化你的应用程序以使用额外的空间时,iPhone 6 用户会突然抱怨字体大小在停止自动缩放时变小了。

您应该花时间为 iPhone 6 优化它并包含启动图像(或启动故事板,如果仅支持 iOS 8+),并在您的应用描述中添加“针对 iPhone 6 优化”注释。

【讨论】:

  • 现在我明白了......所以它可以在你添加 lauch 图像的情况下工作......但对我来说,最好放大,因为我正在开发游戏,它在更大的设备上看起来真的很酷......
  • 嗨,Marcus,我已经启动了一个启动 xib,以便为 iPhone 6/6+ 进行适当缩放,但在阅读此处的另一个线程时:stackoverflow.com/questions/26210622/…,这个人正在谈论 @3x,而我我对此感到困惑。你能详细说明这个人在说什么吗?谢谢
  • 3x 图像与获取 此应用已针对 iPhone 5、iPhone 6 和 iPhone 6 Plus 进行了优化。 文本。这是我的一个应用程序。没有高于 2 倍的图像,但我有所有必需的启动图像,它是 says it's optimized。如果您了解 Retina 设备的 2x 缩放图像,iPhone 6 Plus Retina 具有更高的 3x 缩放比例。将启动情节提要上的任何图像视图设置为自动缩放或包含所有缩放尺寸,以使其尺寸合适。
  • 嗨,Marcus,我有一个旧代码,它使用自动调整大小,专为 iPhone 5 构建,它可以为 iPhone 6 和 6 Plus 缩放,但不能为 iPhone X 缩放。请告诉我如果有一种方法可以在 iPhone X 上进行缩放,或者无法为 iPhone X 缩放应用程序。
【解决方案2】:

要解决此问题并恢复应用程序的自动缩放功能,只需不要设置启动屏幕文件并在项目中放置一个名为 Default-568h@2x.png(640x1136 像素)的图像。 现在在情节提要中使用 iPhone SE 屏幕尺寸制作整个项目。当应用程序在大屏幕 iphone 上打开时,视图图像将填满整个屏幕。

【讨论】:

    【解决方案3】:

    如果您在 iOS 8 之前不触摸您的应用,它将自动在 iPhone 6 和 6 Plus 设备上运行。但是如果你想使用尺寸类(你应该这样做),那么你必须添加自动布局约束以使一切正常。

    【讨论】:

    • 在 ios9 中会发生什么?如果 iPhone 6 处于缩放模式,我的 iphone5 应用程序在 iPhone 6 上运行良好。在标准模式下,它会被“挤压”到右上角。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    相关资源
    最近更新 更多