En la aplicación 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 Cómo detectar la resolución de pantalla del dispositivo
Respuesta
CGRect screenBounds = [[UIScreen mainScreen] bounds];
le dará la resolución de toda la pantalla en puntos, por lo que sería más típicamente 320x480 para los 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 de píxel & de altura 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.
Se puede leer una buena lectura sobre la diferencia entre puntos y píxeles en iOS here.
EDIT: (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)
Véase el UIScreen Referencia: 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");
}
gracias por la respuesta, si me lo ponga en NSLog (@ "% d", [[UIScreen mainScreen] scale]); da 0 ...... y NSLog (@ "% @", [[UIScreen mainScreen] scale]); da nl Pls déjame saber cómo obtener una resolución de pantalla o cómo probar si está dando una resolución correcta mientras se ejecuta en el simulador – ios
prueba 'NSLog (@"% f ", [[UIScreen mainScreen] scale]);' – vikingosegundo
@ vikingosegundo, Gracias – ios
utilizarlo en aplicaciones Delegado: Estoy utilizando 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];
[email protected]"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);
[email protected]"5";
}
} else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
// NSLog(@"wqweqe");
storyboard = [UIStoryboard storyboardWithName:@"iPad" bundle:nil];
}
return YES;
}
y iPhone 6 (s) (+) no funcionarán – vikingosegundo
Para iOS 8 sólo podemos utilizar este [UIScreen mainScreen].nativeBounds
, así:
- (NSInteger)resolutionX
{
return CGRectGetWidth([UIScreen mainScreen].nativeBounds);
}
- (NSInteger)resolutionY
{
return CGRectGetHeight([UIScreen mainScreen].nativeBounds);
}
La clase UIScreen le permite encontrar la pantalla re solución 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.
UIScreen de 'bounds.width' volver tamaño rectangular en Puntos
UIScreen de 'nativeBounds.width' tamaño retorno rectangular en valor Pixels.This se detecta como PPI (punto por pulgada). Muestra la nitidez & 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)")
Console
width:736.0
height:414.0
Native Width:1080.0
Native Height:1920.0
2.x Swift
//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
ObjectiveC
// 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
utilizar el código que le ayudará a conseguir cualquier tipo de resolución de la pantalla del dispositivo
[[UIScreen mainScreen] bounds].size.height
[[UIScreen mainScreen] bounds].size.width
- 1. ¿Cómo acomodar la resolución de la pantalla del iPhone 4?
- 2. ¿Cuál es la resolución de la pantalla del iPhone?
- 3. ¿Cómo detectar la resolución de textura máxima en iPhone?
- 4. ¿Cómo obtener la resolución de pantalla de su dispositivo Android ...?
- 5. Corona SDK Resolución de pantalla del dispositivo cruzado
- 6. Detectar la orientación de la pantalla del iPhone
- 7. iphone camera: cómo detectar el movimiento del objeto en la pantalla de la cámara?
- 8. Cómo obtener la resolución de pantalla del navegador en vivo
- 9. Detectar pantalla retina/iPhone 4 en iPhone SDK
- 10. Cómo controlar la orientación de la pantalla para iPhone en la aplicación web
- 11. ¿Cómo detectar la versión de iPhone OS en la aplicación?
- 12. Detecta una aplicación en la pantalla de inicio de iphone
- 13. compact framework dotnet 3.5 SP1 detecta la resolución del dispositivo
- 14. Todavía confundido sobre la nueva resolución del iPhone 4
- 15. declaración condicional para la resolución de pantalla?
- 16. Imágenes para la pantalla retina del iphone 5
- 17. ¿Cómo verificar la identificación del dispositivo del simulador de iPhone?
- 18. Cambios en la resolución de pantalla del iPhone en el hardware futuro
- 19. Cómo detectar la presencia de cierto dispositivo
- 20. ¿Cómo obtener la resolución de la pantalla? Para una aplicación WinRT?
- 21. Cómo verificar la aplicación instalada en el dispositivo iPhone
- 22. Cómo tomar imágenes mediante programación en la aplicación iphone con la cámara del dispositivo? En
- 23. cómo saber la densidad del dispositivo?
- 24. ¿Cómo puedo obtener la resolución de la pantalla en R
- 25. Cómo detectar la pantalla Retina en MonoTouch
- 26. ¿Cómo saber la resolución de pantalla en "DP"?
- 27. Resolución de pantalla mínima para dispositivos Android
- 28. detectar iPad 2x botón para la aplicación de iPhone
- 29. ¿Cuál es el código para detectar si la aplicación ios se ejecuta en la pantalla Retina de iPhone, iPhone o iPad?
- 30. Detección de puntos brillantes/oscuros en la pantalla del iPhone
Excepto que esta no es exactamente la resolución de 'píxel real' en el caso del iPhone 6 Plus. Es la resolución de todo * se * renderizado en (excepto OpenGL) en código, con una escala de 3x, pero luego * que * se muestrea de abajo internamente a la resolución nativa de la pantalla de 1080 x 1920. Una de las muchas buenas explicaciones en [enlace] (http://www.paintcodeapp.com/news/iphone-6-screens-demystified) – RobP
Lamentablemente, esto no le dará las dimensiones "verdaderas" de los elementos en la pantalla, ya que las nociones de Apple de "puntos" y "escala" "son solo una aproximación. (Ver especificaciones en iPhone vs iPad vs iPad mini.) Presumiblemente para reducir el número de combinaciones diferentes que existen. Creo que iPhone 6 Plus está particularmente lejos. – ToolmakerSteve
Actualmente 6+ no demasiado lejos: altura 736 pts/160 (pt/in) = 4.60 "de altura lógica; la altura real de la pantalla es 4.79"; 5% de error El iPad está mucho más alejado: altura 1024 pts/160 (pt/in) = 6,40 "altura lógica, altura real de pantalla: 7,76"; 20% de error iPad * mini * está bien; coincide con la densidad original de iPhone. Para la mayoría de los propósitos, esto significa que debe probar el software iPad en iPad * mini * (para asegurarse de que sea utilizable), luego simplemente ignore el hecho de que la mayoría de los iPads amplían la imagen en un 20% (en comparación con iPhone o iPad mini). – ToolmakerSteve