2012-05-29 54 views
1

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

+0

我不认为有一种方法可以实现您正在尝试做的事情。 iPad的操作系统决定了它运行的应用程序类型(与iPad兼容或iPhone分辨率)并相应地显示视图。如果您通过应用程序配置告诉操作系统它可以在iPad上运行,那么您总能获得这种视图。除非你自己手动进行视图缩放。 –

回答

3

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

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

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

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

UIDeviceFamily in the Information Property List Key Reference

+0

感谢您的回复!现在,我知道这是不可能的,我不得不做些事情来解决问题。 – Radrider33

2

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

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

相关问题