En la aplicación para iPhone, mientras 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?
En la aplicación para iPhone, mientras 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?
CGRect screenBounds = [[UIScreen mainScreen] bounds];
Eso le dará la resolución de la pantalla completa en puntos, por lo que normalmente sería 320x480 para iPhones. A pesar de que 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 más antiguas.
CGFloat screenScale = [[UIScreen mainScreen] scale];
Esto le dará la escala de la pantalla. Para todos los dispositivos que no tienen pantallas Retina, 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 la altura de 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, obtienes la resolución de píxeles real.
Aquí se puede leer 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)
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 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.
Los 'límites. Ancho' de UIScreen devuelven tamaño rectangular en Puntos
UIScreen 'nativeBounds.width' 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
Consola
Swift 2.x
C objetivo
fuente
Úselo en Delegado de aplicaciones: estoy usando storyboard
fuente
Para iOS 8 podemos usar esto
[UIScreen mainScreen].nativeBounds
, así:fuente
Consulte la referencia de UIScreen: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIScreen_Class/Reference/UIScreen.html
fuente
NSLog(@"%f",[[UIScreen mainScreen] scale]);
Use este código que ayudará a obtener cualquier tipo de resolución de pantalla del dispositivo
fuente