ios - recuperar - en la aplicación de iPhone Cómo detectar la resolución de pantalla del dispositivo
recuperar notificaciones iphone (6)
En la aplicación de iPhone, mientras se ejecuta la aplicación en el dispositivo ¿Cómo detectar la resolución de pantalla del dispositivo en el que se ejecuta la aplicación?
Úselo en Delegado de aplicaciones: Estoy usando guiones gráficos
- (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;
}
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");
}
La clase UIScreen le permite encontrar la resolución de pantalla en Puntos y Píxeles.
Las resoluciones de pantalla se miden en Puntos o Píxeles. Nunca se debe confundir con el tamaño de la pantalla. Un tamaño de pantalla más pequeño puede tener una resolución más alta.
"Bounds.width" de UIScreen devuelve tamaño rectangular en Puntos
"NativeBounds.width" de UIScreen devuelve el tamaño rectangular en píxeles. Este valor se detecta como PPI (punto por pulgada). Muestra la nitidez y claridad de la imagen en un dispositivo.
Puede usar la clase 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 objetivo
// 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
Para iOS 8, podemos usar esto [UIScreen mainScreen].nativeBounds
, así:
- (NSInteger)resolutionX
{
return CGRectGetWidth([UIScreen mainScreen].nativeBounds);
}
- (NSInteger)resolutionY
{
return CGRectGetHeight([UIScreen mainScreen].nativeBounds);
}
Utilice este código que ayudará a obtener cualquier tipo de resolución de pantalla del dispositivo
[[UIScreen mainScreen] bounds].size.height
[[UIScreen mainScreen] bounds].size.width
CGRect screenBounds = [[UIScreen mainScreen] bounds];
Eso le dará la resolución completa de la pantalla en puntos, por lo que típicamente sería de 320x480 para iPhones. Aunque el iPhone4 tiene un tamaño de pantalla mucho más grande, iOS todavía devuelve 320x480 en lugar de 640x960. Esto se debe principalmente a la ruptura de aplicaciones antiguas.
CGFloat screenScale = [[UIScreen mainScreen] scale];
Esto le dará la escala de la pantalla. Para todos los dispositivos que no tienen Retina Displays esto devolverá un 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 obtener el ancho y alto de píxeles de la pantalla del dispositivo iOS, solo tiene que hacer una cosa simple.
CGSize screenSize = CGSizeMake(screenBounds.size.width * screenScale, screenBounds.size.height * screenScale);
Al multiplicar por la escala de la pantalla, obtienes la resolución de píxel real.
Puede leer here una buena lectura sobre la diferencia entre puntos y píxeles en iOS.
EDITAR: (Versión para Swift)
let screenBounds = UIScreen.main.bounds
let screenScale = UIScreen.main.scale
let screenSize = CGSize(width: screenBounds.size.width * screenScale, height: screenBounds.size.height * screenScale)