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

1

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

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

Ваш Ответ

2   ответа
2

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

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

3

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

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

Похожие вопросы