Запуск универсального приложения в виде масштабированного приложения для iPhone?

Я видел множество вопросов и ответов о слиянии приложения для iPhone и iPad в универсальное приложение, но это не то, что я хочу делать. То, что я собираюсь сделать, это использовать при покупке приложения, чтобы разблокировать интерфейс iPad, а затем отобразить правильный интерфейс с помощью условных выражений. Если интерфейс приобретен, приложение отображает перо iPad, а если нет, оно отображается так же, как приложение iPhone (с возможностью масштабирования приложения и т. Д.). Условия очень просты, и я их уже реализовал, однако проблема, с которой я столкнулся, заключается в следующем: если IAP НЕ куплен, iPad отображает перо iPhone, но не в обычном режиме. Это просто в углу без возможности масштабирования, а не в центре с черной рамкой, которую вы обычно видите. Кто-нибудь знает, как я могу настроить его, чтобы я решил эту проблему? Я немного озадачен, если честно.

 Dan F29 мая 2012 г., 19:43
Я не думаю, что есть способ достичь того, что вы пытаетесь сделать. Операционная система iPad определяет, какое приложение запущено (совместимо с iPad или разрешением iPhone), и соответственно отображает представление. Если вы сообщите ОС через конфигурацию приложения, что она может работать на iPad, вы всегда получите такой вид. Если вы не выполняете масштабирование вида вручную самостоятельно.

Ответы на вопрос(2)

Решение Вопроса

Info.plist файл в приложении iOS содержит ключ,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

 Radrider3330 мая 2012 г., 08:03
Спасибо за ответ! Теперь, когда я знаю, что это невозможно, мне придется что-то приготовить, чтобы решить проблему.

К сожалению, это невозможно. IPad будет знать, что приложение готово для iPad, и скажет нарисовать экран в полном размере. Даже если бы вы показывали файл xib iPhone на iPad, они все равно были бы масштабированы до полного экрана, используяUIViewAutoresizingMask параметры, которые вы для них задали.

Одна мысль будет заключаться в том, чтобы заставить размер вашегоUIWindow быть размером с iPhone (не забудьте учесть сетчатку глаза) и центрироваться, но я не уверен на 100%, как / если это будет работать. Возможно, вам придется изменить каждыйUIView Рамка. Я не уверен.

Ваш ответ на вопрос