2014-12-04 5 views
1

Попытка запускать собственное разрешение в симуляторе для iPhone 6 и 6+. Я использую Xcode 6.Проверка собственного разрешения для iPhone 6 и iPhone 6+

Проделали установку образа запуска в XCode при правильных разрешениях.

iPhone 6 (Retina HD 4.7) требует запуска портрета изображения 750 х 1334.

iPhone 6 Plus (Retina HD 5.5) требует как портрет и пейзаж изображения размером в 1242 х 2208 и 2208 х 1242 соответственно.

Но в коде,

[[UIScreen mainScreen] bounds].size.width 
[[UIScreen mainScreen] bounds].size.height 

получить

375.000000, 667.000000 for iphone 6 simulator 
414.000000, 736.000000 for iphone 6+ simulator 

, если изображения удалены получить

320.000000, 568.000000 for iphone 6 simulator 
320.000000, 568.000000 for iphone 6+ simulator 

Так что я предполагаю, что верхние цифры подтвердить, что мы в высоком разрешении режиме, но почему мы не получаем истинное разрешение экрана? iphone 6 is/2 и iphone 6+/3. Или это просто по дизайну.

[ДОБАВЛЕНИЕ]

Мысли Я хотел бы добавить этот скрипт в для примера о том, как генерировать все Xcode 6 Launch экранов ....

должен установить ImageMagick, используйте исходный файл без альфа-слоя.

convert black.png -resize 1024x768! Launch-iPad-1024x768-Landscape-ios-5-6-1x.png 
convert black.png -resize 1024x768! Launch-iPad-1024x768-Landscape-ios-7-8-1x.png 
convert black.png -resize 1536x2048! Launch-iPad-1536x2048-Portrait-ios-5-6-2x.png 
convert black.png -resize 1536x2048! Launch-iPad-1536x2048-Portrait-ios-7-8-2x.png 
convert black.png -resize 2048x1536! Launch-iPad-2048x1536-Landscape-ios-5-6-2x.png 
convert black.png -resize 2048x1536! Launch-iPad-2048x1536-Landscape-ios-7-8-2x.png 
convert black.png -resize 768x1024! Launch-iPad-768x1024-Portrait-ios-5-6-1x.png 
convert black.png -resize 768x1024! Launch-iPad-768x1024-Portrait-ios-7-8-1x.png 
convert black.png -resize 1242x2208! Launch-iPhone-1242x2208-Portrait-ios-8-HD-5.5.png 
convert black.png -resize 2208x1242! Launch-iPhone-2208x1242-Landscape-ios-8.png 
convert black.png -resize 320x480! Launch-iPhone-320x480-Portrait-ios-5-6-1x.png 
convert black.png -resize 640x1136! Launch-iPhone-640x1136-Portrait-ios-5-6-Retina-4.png 
convert black.png -resize 640x1136! Launch-iPhone-640x1136-Portrait-ios-7-8-Retina-4.png 
convert black.png -resize 640x960! Launch-iPhone-640x960-Portrait-ios-5-6-2x.png 
convert black.png -resize 640x960! Launch-iPhone-640x960-Portrait-ios-7-8-2x.png 
convert black.png -resize 750x1334! Launch-iPhone-750x1334-Portrait-ios-8-HD-4.7.png 
+0

'[[UIScreen mainScreen] scale];' - это множитель, который вы, вероятно, ищете, чтобы получить разрешения _real_ с 'bounds'. – holex

+0

Спасибо, да, это все выглядит так, как это должно работать. Это первый случай, когда я немного посмотрел на эту деталь. – ort11

ответ

0

Вы можете использовать либо [UIScreen mainScreen].nativeScale ведьма будет дает 2.6f если нормально, и 2.8f, если масштаб изображения на iPhone 6 плюс, или определенные макросы:

#define IS_OS_8_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) 
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
#define IS_IPHONE (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
#define IS_IPHONE_5 (IS_IPHONE && ([[UIScreen mainScreen] bounds].size.height == 568.0) && ((IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale == [UIScreen mainScreen].scale) || !IS_OS_8_OR_LATER)) 
#define IS_STANDARD_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0 && IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale == [UIScreen mainScreen].scale) 
#define IS_ZOOMED_IPHONE_6 (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 568.0 && IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale > [UIScreen mainScreen].scale) 
#define IS_STANDARD_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 736.0) 
#define IS_ZOOMED_IPHONE_6_PLUS (IS_IPHONE && [[UIScreen mainScreen] bounds].size.height == 667.0 && IS_OS_8_OR_LATER && [UIScreen mainScreen].nativeScale < [UIScreen mainScreen].scale) 

Вот экран оценки для Если экран масштабирования или нет

<UIScreenMode: 0x17802f240; size = 1242.000000 x 2208.000000> // STANDARD 
<UIScreenMode: 0x178226be0; size = 1125.000000 x 2001.000000> // ZOOMED 
Смежные вопросы