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

时间:2012-05-29 17:40:39

标签: iphone ios ipad ios-universal-app

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

2 个答案:

答案 0 :(得分:3)

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

如果UIDeviceFamily表示该应用支持iPad,那么它将以原生iPad模式运行该应用,而非iPhone包装模式。

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

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

UIDeviceFamily in the Information Property List Key Reference

答案 1 :(得分:2)

不幸的是,这是不可能的。 iPad将知道该应用程序已准备好iPad,并会告诉我们全屏绘制屏幕。即使您在iPad上显示iPhone xib文件,它们仍将使用您为其设置的UIViewAutoresizingMask参数进行缩放以适应全屏。

一种想法是强迫你的UIWindow的大小是iPhone大小(记得考虑到视网膜)并集中,但我不是100%确定如何/如果这将起作用。您可能需要更改每个UIView框架。我不确定。