Работа с iPad Mini размер экрана


новый iPad Mini имеет размер экрана 7,9 дюйма. Есть ли у него дисплей retina? Будет ли он автоматически масштабировать существующие xibs и раскадровки или нам нужно создать две версии каждого?

мы имеем дело с ним так же, как мы имеем дело с iPhone 5?

Как я могу создать определение или условие, чтобы увидеть, если устройство работает iPad Mini?

9 60

9 ответов:

если ваше приложение работает на iPad 1 или iPad 2, оно будет работать как на новом iPad mini. На mini нет дисплея retina. С точки зрения приложения он идентичен iPad 2.

Edit: был задан вопрос, Как определить, когда приложение работает на iPad mini. Для этого нет проверки API. Размер экрана не помогает. UI_USER_INTERFACE_IDIOM() не помогает. Пока кто-то на самом деле не имеет один, нет никакого способа узнать, если UIScreenMode pixelAspectRatio отличается (вероятно, это то же самое, что и iPad 2).

это оставляет только одну возможность - получить machine С uname() и жестко проверьте это значение. Это никогда не желаемый подход. И на момент написания этой статьи мы не знаем, какова будет ценность. Возможно iPad5, x предполагая, что iPad 4-го поколения iPad4, x.

Edit: до сих пор я видел отчет о том,что iPad mini возвращает iPad2, 5 (да,это две запятые пять), а также iPad2, 6 и iPad2, 7 для имени машины.

приложения будут работать нормально. Но если у вас есть очень маленькие элементы пользовательского интерфейса. возможно, вы захотите вернуться к ним из-за уменьшения размера экрана.

создание приложений для iPad 2 разрешение. Новый iPad Mini не является retina с разрешением 1024x768, что означает, что приложения, которые уже работали на iPad 1 или iPad 2, автоматически работают на iPad Mini.

Я думаю, что Фил Шиллер (старший вице-президент Apple) сказал это лучше всего в пресс-конференции открытие iPad Mini (примерно 53: 00 в keynote)

какой размер экрана мы выбираем и почему? И команда работала очень усердно думаю об этом. Мы хотим iPad, который способен запускать все это удивительное программное обеспечение, написанное для iPad без разработчиков делать любую работу...

затем он продолжает:

...И пиксели еще легче запомнить, потому что они точно такие же тот же. Оригинальный iPad и iPad 2 1024 на 768 и новый iPad Mini - 1024 на 768. это означает, что все программное обеспечение, созданное для iPad работает на iPad Mini без изменений.

Итак, вкратце и чтобы ответить на ваш вопрос, нет iPad Mini не имеет дисплея Retina, и вам не нужно делать никакой дополнительной работы. IPad Mini будет использовать раскадровку или xib вас уже создали для айпадов.

тогда, насколько обнаружение идет, я не могу найти ничего, чтобы доказать это еще (потому что они еще не были выпущены), но я был бы готов поспорить, что следующее выведет "iPad Mini".

NSLog(@"%@",[[UIDevice currentDevice] model]);

EDIT:

NSLog(@"\nMachine ID: %@\nModel: %@\nLocalized Model: %@",machineName(),[[UIDevice currentDevice] model],[[UIDevice currentDevice] localizedModel]);

NSString *machineName()
{

    struct utsname systemInfo;
    uname(&systemInfo);

    return [NSString stringWithCString:systemInfo.machine
                              encoding:NSUTF8StringEncoding];
}

на моем 16GB iPad Mini (только Wifi) это возвращает:

ID машины: iPad2, 5
Модель: iPad
Локализованная модель: iPad

Если iPad Mini и iPad без сетчатки будут иметь одинаковый размер экрана, не могли бы вы использовать что-то вроде того, что используется для определения того, является ли экран устройства iPhone 5 или iPhone 4:

#define IS_WIDESCREEN5 ( [ [ UIScreen mainScreen ] bounds ].size.height == 568 )
#define IS_WIDESCREEN4 ( [ [ UIScreen mainScreen ] bounds ].size.height == 480 )

Так что для iPad Mini и не-retina iPad, сделайте:

#define IS_PAD ( [ [ UIScreen mainScreen ] bounds ].size.height == 512 )

и для retina iPad сделать:

#define IS_RETINA_PAD ( [ [ UIScreen mainScreen ] bounds ].size.height == 1024 )

Это должно различать два типа экранов и обходить необходимость точного определения модели для целей масштабирования. Заместитель метод будет использовать auto-layout, однако у меня есть лучшее чувство контроля без него.

Я надеюсь, что это помогает со второй частью вашего вопроса. Удачи :)

вы не должны делать ничего другого. Он должен автоматически работать, как указано apple. Разрешение по-прежнему такое же, как у iPad.

iPad mini использует то же разрешение, что и iPad без сетчатки, iOS будет использовать графику 1x. Обратитесь к этой ссылке... ссылке

изображения для ipad mini будут одинаковыми для ipad 1 и 2. Но рекомендуется также использовать изображения @2x для экрана retina. Потому что, как только ваше приложение находится в app store, вы не можете запретить людям загружать его на ipad с дисплеем retina.

таким образом, в этот момент времени вам придется создавать изображения как для сетчатки, так и для не сетчатки.

программно, отдельные файлы xib не требуются для ipad retina display. Просто держись imageName@2x.png тоже для всех имиджевых активов.

для обнаружения iPad Mini (любой модели) я использую этот код (протестирован на iOS 10.x):

- (BOOL)isIPadMini {
   return [[UIDevice currentDevice].name hasPrefix:@"iPad Mini"];
}