Следующий код может быть использован для получения bounds
, coordinateSpace
, nativeScale
и scale
, то есть на iPhone 6 Плюса nativeScale
является 2,608 и когда устройство в работать в режиме Zoomed это 2,88 (заметим, что она отличается в тренажере):
UIScreen *mainScreen = [UIScreen mainScreen];
NSLog(@"Screen bounds: %@, Screen resolution: %@, scale: %f, nativeScale: %f",
NSStringFromCGRect(mainScreen.bounds), mainScreen.coordinateSpace, mainScreen.scale, mainScreen.nativeScale);
Код для обнаружения iPhone 6 Plus:
-(BOOL)iPhone6PlusDevice{
// Scale is 3 currently only for iPhone 6 Plus
if ([UIScreen mainScreen].scale > 2.9) return YES;
return NO;
}
или
-(BOOL)iPhone6PlusUnZoomed{
if ([self iPhone6PlusDevice]){
if ([UIScreen mainScreen].bounds.size.height > 720.0) return YES; // Height is 736, but 667 when zoomed.
}
return NO;
}
Примечание: Если вы проверяете для iPhone 6 Plus, чтобы настроить пользовательский интерфейс, то don't полагаться на .nativeScale
, потому что симулятор и фактическое устройство дают разные результаты.
Это работает для меня! Просто нужно было добавить mainScreen(). "UIScreen.mainScreen(). NativeScale". Очень полезно получать изображения из веб-службы по их ширине и высоте и в виде изображения: D – nmdias