1

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

4

2 回答 2

3

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

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

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

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

UIDeviceFamily信息属性列表键参考

于 2012-05-29T21:55:52.867 回答
2

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

一种想法是强制您的尺寸为UIWindowiPhone 尺寸(记住要考虑视网膜)并居中,但我不能 100% 确定这将如何/是否有效。您可能必须更改每一UIView帧。我不确定。

于 2012-05-29T17:53:18.183 回答