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