为“iPhone”设置的应用程序,但它仍然可以在 iPad 上全屏显示? [关闭]

Posted

技术标签:

【中文标题】为“iPhone”设置的应用程序,但它仍然可以在 iPad 上全屏显示? [关闭]【英文标题】:App set for 'iPhone', but it still stretches to full screen on an iPad? [closed] 【发布时间】:2017-12-19 20:58:24 【问题描述】:

我尝试将我的“iPhone”应用程序提交到 App Store,但他们拒绝了它,并指出它需要以 iPhone 分辨率在 iPad 上运行。我认为它会自动执行此操作,因为我将我的应用程序设置为“iPhone”应用程序,而不是通用应用程序。然而,出于某种原因,我的 iPhone 应用程序在 iPad 上运行时仍然尝试拉伸到全屏。请参阅下面的屏幕截图。

Apple Store 回来了:

指南 2.4.1 - 性能 - 硬件兼容性

我们注意到,在运行 ios 11.1 的 iPad 上查看时,您的应用未按预期运行或显示。有关详细信息,请参阅随附的屏幕截图。

后续步骤

要解决此问题,请修改您的应用程序以确保它按预期运行并在 iPad 上以 iPhone 分辨率正确显示。即使您的应用程序是专门为 iPhone 开发的,用户仍然应该能够在 iPad 上使用您的应用程序。

--

在手机上,它可以正常显示:

所有scrollviews的约束如下:

【问题讨论】:

您的项目中有 iPad 大小的启动图像吗?不确定这是否是问题所在,但这是我要检查的第一件事。 @meaning-matters 我不知道。出于某种原因,iPad 也将我的 iPhone 启动图像拉伸到了全屏。 它是否填满了整个 iPad 屏幕而没有任何黑色边框并且右下角没有 (1X) 按钮? @meaning-matters 右下角有黑色边框和一个 1x 按钮。也就是说,点击 1x 按钮只会缩小“最大化”问题的大小(例如,分辨率仍然关闭,就像全屏拉伸一样,只是很小)。 那没关系;您的应用程序伸展是正常的。当问及此事时,Apple 提供或确实得到了哪些细节?一定有别的东西。 【参考方案1】:

好问题 - 您很可能遇到了这个简单的问题:

在自动布局中,您必须约束所有视图。

有时您会忘记约束视图(或者可能是所有视图!)

在一些简单的情况下,视图仍然可以“工作”。

在你的情况下,不幸的是,主要视图仍在“工作”,它们正在合理地填满屏幕。

为了让您开始,请确保所有四个约束 - 左、右、上下 - 都已附加。

(您必须看到红框区域中显示的内容。)

这是 Apple 非常愚蠢的决定:尝试让事情“更容易”,如果您完全忽略对视图的约束,它仍然会“工作”(它会尽力适应它中,使用 Xcode 行为中的一些默认值或其他东西,这完全是愚蠢的)。

Apple 有一个非常糟糕的想法:当然,如果缺少约束,它应该根本不编译。 (当然,在不寻常的情况下,您可以在运行时或其他任何情况下将它们放入并标记它;但通常这是计划错误。)

同样,如果您忘记了 one 约束,则会出现错误。但是如果你全部忘记它们,这会非常令人困惑,它不会带来错误甚至警告!

你会得到你所描述的问题。

很可能您遇到了其他问题,但这是通常的简单问题。

【讨论】:

约束全部开启。另外:谁投了反对票,为什么?我很好奇。 啊,限制已开启!你很确定对吧? (网站上的投票几年来一直是随机的 - 不用担心:O)

以上是关于为“iPhone”设置的应用程序,但它仍然可以在 iPad 上全屏显示? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

仅设置通用应用 iPhone

iPhone - 为啥全屏不起作用,但它适用于 iPad?

设置约束后 Swift 获取实际视图大小

是否可以为不同的 iPhone 屏幕设置宽度和高度?

无法在我的 iPhone 应用程序中为横向设置 SplashScreen

将 Xcode 的目标设置为 iPhone 而不是 iPad