2012-05-29 52 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框架。我不確定。

相關問題