将通用应用程序作为缩放iPhone应用程序运行?

我已经看到了很多关于将iPhone和iPad应用合并为一个通用应用的问题和答案,但这不是我想要做的。 我要做的是在应用程序购买中使用解锁iPad界面,然后使用条件显示正确的界面。 如果购买界面,应用程序将显示iPad笔尖,如果不是,则显示与iPhone应用程序相同的方式(可以select缩放应用程序等)。 条件是非常简单的,我已经实现了,但是我遇到的问题是这样的:如果没有购买IAP,iPad显示iPhone Nib,但不是以典型的方式。 它只是在angular落里,没有select的规模,而不是在你通常看到的黑色边框的中心。 有谁知道我可以设置它,所以我修复这个问题? 说实话,我有点难过

iOS应用程序中的Info.plist文件包含一个键UIDeviceFamily ,该键列出了应用程序本机支持的设备。 如果该键的值为1或包含1的数组,则该应用本身支持iPhone和iPod Touch。 如果值为2或包含2的数组,则该应用程序本身支持iPad。

如果UIDeviceFamily说该应用程序支持iPad,那么它将在本机iPad模式下运行应用程序,而不是iPhone包装模式。

Info.plist文件是应用程序包的一部分,您无法修改应用程序包中的文件。

因此,在运行时无法启用或禁用系统的本机iPad支持。 您必须将应用程序的顶层视图移动到以子视图为中心和缩放的包装视图中,并使用该包装视图作为UIWindow的子视图。

信息属性列表键参考中的 UIDeviceFamily

不幸的是,这是不可能的。 iPad将知道该应用程序是iPad准备好,并会告诉画全尺寸的屏幕。 即使您在iPad上展示iPhone xib文件,仍然会使用您为它们设置的UIViewAutoresizingMask参数来缩放以适应全屏。

一个想法是强制你的UIWindow的大小是iPhone的大小(记得考虑视网膜)和居中,但我不是100%确定如何/如果这将工作。 你可能不得不改变每个UIView框架。 我不确定。