ios - 应用程序设置为 'iPhone' ,但它仍然在 iPad 上延伸到全屏?

标签 ios iphone ipad

<分区>

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

enter image description here

Apple Store 回来了:

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

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

后续步骤

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

--

在手机上,它正确显示:

enter image description here

所有scrollviews的约束如下:

enter image description here

最佳答案

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

在自动布局中,您必须限制所有 View 。

有时您会忘记约束一个 View (或者可能是所有 View !)

在一些简单的情况下, View 仍然“有效”。

在您的情况下,尽管运气不佳,主要 View 仍在“工作”,它们合理地填满了屏幕。

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

enter image description here

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

这是 Apple 的一个极其愚蠢的决定:试图让事情变得“更简单”,如果你完全忽略对 View 的约束,它仍然会“工作”(它会尝试最好地适应它在,使用 Xcode 行为中的一些默认值或其他东西,这完全是愚蠢的)。

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

同样,如果您忘记了一个 约束,则会出现错误。但令人困惑的是,如果您将它们全部忘记,它不会出现错误甚至警告!

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

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

关于ios - 应用程序设置为 'iPhone' ,但它仍然在 iPad 上延伸到全屏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47895094/

相关文章:

ios - 从不响应 iPad 的其他 ViewController 调用 didSelectRowAtIndexPath

iphone - 如何识别当前哪个文本字段是第一响应者

ios - HTTPURLResponse.localizedString(forStatusCode :) not in development language

iOS - 将 NSDate 与另一个 NSDate 进行比较

iphone - 具有两种不同字体颜色的 UILabel

iphone - 如何确定坐标是否在当前可见的 map 区域内?

ios - UIImagePickerController 相机 View 大小问题

iphone - 当推送一个新的 Controller 时,pushViewController 是否应该释放 oldController?

ios - 根据文本行自动计算标签的高度

ios限制输入多个 "."或 ","(如果是俄语本地化)