Работа с iPad Mini размер экрана
новый iPad Mini имеет размер экрана 7,9 дюйма. Есть ли у него дисплей retina? Будет ли он автоматически масштабировать существующие xibs и раскадровки или нам нужно создать две версии каждого?
мы имеем дело с ним так же, как мы имеем дело с iPhone 5?
Как я могу создать определение или условие, чтобы увидеть, если устройство работает iPad Mini?
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 тоже для всех имиджевых активов.