¿Cómo puedo programáticamente (Objective-C) si un iPad tiene una pantalla Retina?¿Detecta mediante programación si un iPad tiene pantalla Retina?
Respuesta
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && [[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [UIScreen mainScreen].scale > 1)
{
// new iPad
}
Aunque técnicamente correcto, lo más probable es que sea cierto también para todos los iPads futuros (que aún puede ser justo lo que necesita). –
Responde la pregunta, (detecta la pantalla Retina). Pero si realmente necesita conocer la versión del dispositivo, consulte [aquí] (http://stackoverflow.com/questions/9638970/ios-the-new-ipad-uidevicehardware-hw-machine-codenaname) para obtener una respuesta que identifique _all_ dispositivos . – bobobobo
esto funciona tanto para iOS 7 como para iOS 8. ¡Gracias! – imcc
Como han respondido otros carteles, debe comprobar las características en lugar de modelos. Sin embargo, en los pocos casos poco claros en los que es posible que desee identificar un modelo en particular, puede utilizar el hw.machine sysctrl de la siguiente manera. Tenga en cuenta que si no puede identificar el modelo, lo más probable es que su código se ejecute en un nuevo modelo, por lo que debe hacer algo sensato en ese caso.
#include <sys/types.h>
#include <sys/sysctl.h>
// Determine the machine name, e.g. "iPhone1,1".
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0); // Get size of data to be returned.
char *name = malloc(size);
sysctlbyname("hw.machine", name, &size, NULL, 0);
NSString *machine = [NSString stringWithCString:name encoding:NSASCIIStringEncoding];
free(name);
Ahora puede comparar "máquina" con valores conocidos. Por ejemplo, para detectar modelos de iPad (marzo de 2012):
if ([machine hasPrefix:@"iPad3,"]) NSLog(@"iPad (March 2012) detected");
Ya probé mi aplicación en el emulador de iPad (Retina) y funcionó. Pensé que tendría un problema debido a la nueva resolución del nuevo iPad, pero estaba totalmente equivocado. Gracias de todos modos, esto puede ser útil para otros. – Freedom
- 1. IPhone/IPad: ¿Cómo obtener ancho de pantalla mediante programación?
- 2. ¿Cómo detectar si el iPhone tiene pantalla Retina o no?
- 3. Webapp en iPad 3 retina pantalla pintura de pantalla lenta
- 4. Android: detecta mediante programación si el dispositivo tiene el botón de menú de hardware
- 5. iPad Retina Display Sufijo
- 6. guiones gráficos separados para iPhone/iPhone Retina/iPad/iPad Retina
- 7. Encender la pantalla mediante programación
- 8. Coordenadas de XCode para iPad Retina Displays
- 9. ¿Tiene acceso a iSight mediante programación?
- 10. mejor manera de detectar mediante programación iPad/iPhone hardware
- 11. ¿Puede determinar mediante programación si un usuario tiene licencia para un paquete?
- 12. Cómo comprobar si tiene conexión a Internet en vivo mediante programación mediante C++
- 13. Actualizar la aplicación de lona no retina a la pantalla retina
- 14. Imágenes para retina pantalla iphone
- 15. Cómo verificar mediante programación la versión/modelo de iPad
- 16. Pantalla retina UIWebView y iPhone 4
- 17. Capturas de pantalla de captura mediante programación en OSX
- 18. Cómo desplazarse mediante programación un HorizontalScrollView
- 19. Dibujo de lienzo y pantalla Retina: ¿realizable?
- 20. ipad 3 - error OpenGL con kEAGLDrawablePropertyRetainedBacking y retina?
- 21. Pantalla Retina VS diferencia de color de pantalla normal
- 22. ¿Detecta usuarios de iPad que usan jQuery?
- 23. ¿Detecta si un NSString contiene ...?
- 24. ¿Detecta si el usuario tiene capacidades de impresión?
- 25. Imágenes para la pantalla retina del iphone 5
- 26. aumentar mediante programación un comando
- 27. ¿Cómo desconectar la pantalla mediante programación en Linux?
- 28. ¿Cambiar la resolución de la pantalla mediante programación?
- 29. Bloquear y desbloquear mediante programación la pantalla del iPhone
- 30. ¿Cómo establecer la imagen como fondo de pantalla mediante programación?
¿Con qué idioma? – BoltClock
¿Por qué? En general, debe detectar y ajustar las _features_ en lugar de dispositivos específicos. –
@BoltClock objetivo-c. – Freedom