El nuevo iPad pro tiene dimensión diferente y resoluciones. Si me verificación basada en el ancho de la pantalla sería la correcta? No he actualizado a Xcode 7.1 tampoco tengo el dispositivo, así que no puedo comprobar. Se esta comprobación trabajo?

if([UIScreen mainScreen].bounds.size.width>1024)
    {
        //iPad is an iPad Pro
    }
Usted caso omiso de orientación del dispositivo.

OriginalEl autor Gamerlegend | 2015-11-20

12 Comentarios

  1. 13
    +(BOOL) isIpad_1024
    {
    
        if ([UIScreen mainScreen].bounds.size.height == 1024) {
            return  YES;
        }
        return NO;
    }
    
    +(BOOL) isIpadPro_1366
    {
    
        if ([UIScreen mainScreen].bounds.size.height == 1366) {
            return  YES;
        }
        return NO;
    }

    OriginalEl autor

  2. 12

    Usted puede utilizar este

    #define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    #define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
    #define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)
    #define IS_IPAD_PRO_1366 (IS_IPAD && MAX(SCREEN_WIDTH,SCREEN_HEIGHT) == 1366.0)
    #define IS_IPAD_PRO_1024 (IS_IPAD && MAX(SCREEN_WIDTH,SCREEN_HEIGHT) == 1024.0)

    Luego

     if (IS_IPAD_PRO_1366) {
        NSLog(@"It is ipad pro 1366");
      }
    Su respuesta no ha funcionado para mí.
    ¿Qué es un iPad Pro de 1024? Están sugiriendo que hay 2 modelos?
    Creo que la última línea debe ser de minutos, no de MAX.

    OriginalEl autor

  3. 5

    Lo que va de este macro parece hacer el truco sin problemas.

    #define IS_IPAD_PRO (MAX([[UIScreen mainScreen]bounds].size.width,[[UIScreen mainScreen] bounds].size.height) > 1024)

    OriginalEl autor

  4. 5

    Como declaró TIENE en su respuesta aquí, añadir esta extensión en tu código:

    public extension UIDevice {
    var modelName: String {
    var systemInfo = utsname()
    uname(&systemInfo)
    let machineMirror = Mirror(reflecting: systemInfo.machine)
    let identifier = machineMirror.children.reduce("") { identifier, element in
    guard let value = element.value as? Int8 where value != 0 else { return identifier }
    return identifier + String(UnicodeScalar(UInt8(value)))
    }
    switch identifier {
    case "iPod5,1":                                 return "iPod Touch 5"
    case "iPod7,1":                                 return "iPod Touch 6"
    case "iPhone3,1", "iPhone3,2", "iPhone3,3":     return "iPhone 4"
    case "iPhone4,1":                               return "iPhone 4s"
    case "iPhone5,1", "iPhone5,2":                  return "iPhone 5"
    case "iPhone5,3", "iPhone5,4":                  return "iPhone 5c"
    case "iPhone6,1", "iPhone6,2":                  return "iPhone 5s"
    case "iPhone7,2":                               return "iPhone 6"
    case "iPhone7,1":                               return "iPhone 6 Plus"
    case "iPhone8,1":                               return "iPhone 6s"
    case "iPhone8,2":                               return "iPhone 6s Plus"
    case "iPad2,1", "iPad2,2", "iPad2,3", "iPad2,4":return "iPad 2"
    case "iPad3,1", "iPad3,2", "iPad3,3":           return "iPad 3"
    case "iPad3,4", "iPad3,5", "iPad3,6":           return "iPad 4"
    case "iPad4,1", "iPad4,2", "iPad4,3":           return "iPad Air"
    case "iPad5,1", "iPad5,3", "iPad5,4":           return "iPad Air 2"
    case "iPad2,5", "iPad2,6", "iPad2,7":           return "iPad Mini"
    case "iPad4,4", "iPad4,5", "iPad4,6":           return "iPad Mini 2"
    case "iPad4,7", "iPad4,8", "iPad4,9":           return "iPad Mini 3"
    case "iPad5,1", "iPad5,2":                      return "iPad Mini 4"
    case "iPad6,7", "iPad6,8":                      return "iPad Pro"
    case "i386", "x86_64":                          return "Simulator"
    default:                                        return identifier
    }
    }
    }

    Y para comprobar

    if(UIDevice.currentDevice().modelName == "iPad Pro"){//Your code}
    Este código ha sido publicado varias veces, por ejemplo, en stackoverflow.com/a/26962452/1187415. Si copia el código de otra fuente, por favor, añadir un enlace a la original, para la debida atribución.

    OriginalEl autor

  5. 1

    SWIFT

    Este es el aceptado respuesta por escrito todos los swift como.

    let isIpadPro:Bool = max(UIScreen.main.bounds.size.width, UIScreen.main.bounds.size.height) > 1024

    OriginalEl autor

  6. 0

    Probar esta biblioteca: https://github.com/fahrulazmi/UIDeviceHardware

    A continuación, los códigos deben ser:

    NSString *platform = [UIDeviceHardware platformString];
    if ([platform isEqualToString:@"iPad6,7"] || [platform isEqualToString:@"iPad6,8"]) {
    //iPad is an iPad Pro
    }

    O este más potente de la biblioteca: https://github.com/InderKumarRathore/DeviceUtil

    La solución no puede trabajar por los simuladores. Me desea comprobar el tipo de dispositivo de simulador, se ve como se tiene que comprobar el tamaño de la pantalla.

    OriginalEl autor

  7. 0

    puede utilizar este código:

    #include <sys/types.h>
    #include <sys/sysctl.h>
    - (BOOL) isIpadPro{
    size_t size;
    sysctlbyname("hw.machine", NULL, &size, NULL, 0);
    char *machine = malloc(size);
    sysctlbyname("hw.machine", machine, &size, NULL, 0);
    NSString *platform = [NSString stringWithUTF8String:machine];
    free(machine);
    if ([platform isEqualToString:@"iPad6,8"])
    return YES;
    return NO;
    }

    OriginalEl autor

  8. 0

    Son chicos bromeando con su complejo de respuestas?

    if([UIScreen mainScreen].bounds.size.width >= 1024) {
    //iPad pro (or hypothetical/future huge-screened iOS device)
    } else {
    //not iPad pro
    }

    Si usted acaba de hacer un > el signo= en lugar de a > signo, va a funcionar de maravilla.

    (bueno, sé que no debería de ser tan desdeñoso de su minuciosa, con respuestas específicas. Seguramente hay veces que un dispositivo específico más importante que el tamaño de la pantalla. Pero por la rápida respuesta obvia…!)

    Pero esto se producirá en el paisaje. En ese momento para el iPad, el ancho es de 1024.

    OriginalEl autor

  9. 0

    Esta macro funciona tanto en vertical como en horizontal:

    #define IS_IPAD_PRO_12_INCH (([UIScreen mainScreen].bounds.size.width == 1366 && [UIScreen mainScreen].bounds.size.height == 1024) || ([UIScreen mainScreen].bounds.size.width == 1024 && [UIScreen mainScreen].bounds.size.height == 1366))

    OriginalEl autor

  10. 0

    Cuando he probado en el simulador de Xcode 8 ninguna de estas soluciones trabajado.

    El truco es buscar «nativeBounds» tamaño de la altura de lo contrario, usted continuará recibiendo 1024 como la altura en el simulador de

    #define iPadPro12 (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad && UIScreen.mainScreen.nativeBounds.size.height > 1024)
    if (iPadPro12)
    {
    //its ipad Pro 12.9 inch screen
    }

    OriginalEl autor

  11. -2

    Siga los siguientes pasos para comprobar

    if([[[UIDevice currentDevice] name] isEqualToString:@"iPad Pro"])
    {
    // do your stuff
    }
    Esto no va a funcionar.Este es el nombre de la configuración,el usuario puede cambiar el nombre
    Esto también es no trabajar.
    si esto no funciona, entonces usted puede comprobar manualmente la pantalla de la altura y la anchura como [UIScreen pantalla principal].tamaño.height == 2048, a continuación, su ipad pro

    OriginalEl autor

  12. -2

    Hay un error para el iPad Pro, que hacen tiene un mal useragent para webview en el momento.
    Agente de usuario buscará le gusta esto:

    Mozilla/5.0 (iPhone; CPU iPhone OS9_1 como Mac OS X) AppleWebKit/601.1.46(KHTML, like Gecko)Móvil/13B143

    Creo que podemos utilizar este error para la detección de iPad Pro para aplicaciones que se ejecutan en modo compatible.

    -(BOOL)isiPadPro;
    {
    UIWebView* webView = [[UIWebView alloc] initWithFrame:CGRectZero];
    NSString* userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
    return [userAgent containsString:@"iPhone"] && ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad);
    }

    OriginalEl autor

Dejar respuesta

Please enter your comment!
Please enter your name here