en la aplicación iPhone Cómo detectar la resolución de pantalla del dispositivo

En la aplicación iPhone, mientras se ejecuta la aplicación en el dispositivo ¿Cómo detectar la resolución de pantalla del dispositivo en el que se está ejecutando la aplicación?

CGRect screenBounds = [[UIScreen mainScreen] bounds]; 

Eso le dará la resolución de toda la pantalla en puntos, por lo que lo más normal sería 320×480 para iPhones. Aunque el iPhone4 tiene un tamaño de pantalla mucho más grande, iOS todavía devuelve 320×480 en lugar de 640×960. Esto se debe principalmente a que las aplicaciones antiguas se están rompiendo.

 CGFloat screenScale = [[UIScreen mainScreen] scale]; 

Esto le dará la escala de la pantalla. Para todos los dispositivos que no tienen Retina Displays, esto devolverá 1.0f, mientras que los dispositivos Retina Display darán un 2.0f y el iPhone 6 Plus (Retina HD) dará un 3.0f.

Ahora, si desea get el ancho y la altura de los píxeles de la pantalla del dispositivo iOS, solo necesita hacer una cosa simple.

 CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale); 

Al multiplicar por la escala de la pantalla obtendrá la resolución real de píxeles.

Se puede leer aquí una buena lectura sobre la diferencia entre puntos y píxeles en iOS.

Úselo en el Delegado de la aplicación: estoy usando el guión gráfico

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { CGSize iOSDeviceScreenSize = [[UIScreen mainScreen] bounds].size; //----------------HERE WE SETUP FOR IPHONE 4/4s/iPod---------------------- if(iOSDeviceScreenSize.height == 480){ UIStoryboard *iPhone35Storyboard = [UIStoryboard storyboardWithName:@"iPhone" bundle:nil]; // Instantiate the initial view controller object from the storyboard UIViewController *initialViewController = [iPhone35Storyboard instantiateInitialViewController]; // Instantiate a UIWindow object and initialize it with the screen size of the iOS device self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Set the initial view controller to be the root view controller of the window object self.window.rootViewController = initialViewController; // Set the window object to be the key window and show it [self.window makeKeyAndVisible]; iphone=@"4"; NSLog(@"iPhone 4: %f", iOSDeviceScreenSize.height); } //----------------HERE WE SETUP FOR IPHONE 5---------------------- if(iOSDeviceScreenSize.height == 568){ // Instantiate a new storyboard object using the storyboard file named Storyboard_iPhone4 UIStoryboard *iPhone4Storyboard = [UIStoryboard storyboardWithName:@"iPhone5" bundle:nil]; // Instantiate the initial view controller object from the storyboard UIViewController *initialViewController = [iPhone4Storyboard instantiateInitialViewController]; // Instantiate a UIWindow object and initialize it with the screen size of the iOS device self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // Set the initial view controller to be the root view controller of the window object self.window.rootViewController = initialViewController; // Set the window object to be the key window and show it [self.window makeKeyAndVisible]; NSLog(@"iPhone 5: %f", iOSDeviceScreenSize.height); iphone=@"5"; } } else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { // NSLog(@"wqweqe"); storyboard = [UIStoryboard storyboardWithName:@"iPad" bundle:nil]; } return YES; } 

La class UIScreen le permite search resolución de pantalla en Puntos y Píxeles.

Las resoluciones de la pantalla se miden en puntos o píxeles. Nunca debe confundirse con el tamaño de la pantalla. Un tamaño de pantalla más pequeño puede tener una resolución más alta.

UIScreen 'bounds.width' devuelve el tamaño rectangular en puntos introduzca la descripción de la imagen aquí

El tamaño rectangular de retorno de 'nativeBounds.width' de UIScreen en Pixels. Este valor se detecta como PPI (punto por pulgada). Muestra la nitidez y claridad de la image en un dispositivo. introduzca la descripción de la imagen aquí

Puede usar la class UIScreen para detectar todos estos valores.

Swift3

 // Normal Screen Bounds - Detect Screen size in Points. let width = UIScreen.main.bounds.width let height = UIScreen.main.bounds.height print("\n width:\(width) \n height:\(height)") // Native Bounds - Detect Screen size in Pixels. let nWidth = UIScreen.main.nativeBounds.width let nHeight = UIScreen.main.nativeBounds.height print("\n Native Width:\(nWidth) \n Native Height:\(nHeight)") 

Consola

 width:736.0 height:414.0 Native Width:1080.0 Native Height:1920.0 

Swift 2.x

 //Normal Bounds - Detect Screen size in Points. let width = UIScreen.mainScreen.bounds.width let height = UIScreen.mainScreen.bounds.height // Native Bounds - Detect Screen size in Pixels. let nWidth = UIScreen.mainScreen.nativeBounds.width let nHeight = UIScreen.mainScreen.nativeBounds.height 

C objective

 // Normal Bounds - Detect Screen size in Points. CGFloat *width = [UIScreen mainScreen].bounds.size.width; CGFloat *height = [UIScreen mainScreen].bounds.size.height; // Native Bounds - Detect Screen size in Pixels. CGFloat *width = [UIScreen mainScreen].nativeBounds.size.width CGFloat *height = [UIScreen mainScreen].nativeBounds.size.width 

Consulte la Referencia de UIScreen: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIScreen_Class/Reference/UIScreen.html

 if([[UIScreen mainScreen] respondsToSelector:NSSelectorFromString(@"scale")]) { if ([[UIScreen mainScreen] scale] < 1.1) NSLog(@"Standard Resolution Device"); if ([[UIScreen mainScreen] scale] > 1.9) NSLog(@"High Resolution Device"); } 

Para iOS 8, podemos usar esta [UIScreen mainScreen].nativeBounds , así:

 - (NSInteger)resolutionX { return CGRectGetWidth([UIScreen mainScreen].nativeBounds); } - (NSInteger)resolutionY { return CGRectGetHeight([UIScreen mainScreen].nativeBounds); } 

Use este código para que le resulte más fácil get la resolución de pantalla de cualquier tipo de dispositivo.

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