關於UI_USER_INTERFACE_IDIOM() & UIDevice.model

使用 UI_USER_INTERFACE_IDIOM() 進行區分  (ios 3.2>=) 無法區分iphone和ipod

 

if (UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad){

      //<define your constants here>

   } else {

    // <define your constants here>

    }

 

區分目前UI_USER_INTERFACE_IDIOM()有2個返回值

UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad   


UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhone   


 

使用 UIDevice.model 進行區分  (ios 2.0>=)

 

    NSString *deviceType= [UIDevice currentDevice].model;

    

    if([deviceType isEqualToString:@"iPhone"]){

       //iPhone

    }

    else if([deviceType isEqualToString:@"iPodtouch"]) {

      //iPod Touch

    }

    else {

       //iPad

    }


 

使用系統的一個函數sysctlbyname 來獲取設備名稱

- (NSString *)platformString

{

    size_t size;

    sysctlbyname("hw.machine"NULL,&size, NULL0);

    char *machine= malloc(size);

    sysctlbyname("hw.machine",machine, &size, NULL0);

    NSString *platform= [NSString stringWithUTF8String:machine];

    free(machine);

    if ([platform isEqualToString:@"iPhone1,1"])   return @"iPhone1G";

    if ([platform isEqualToString:@"iPhone1,2"])   return @"iPhone3G";

    if ([platform isEqualToString:@"iPhone2,1"])   return @"iPhone3GS";

    if ([platform isEqualToString:@"iPhone3,1"])   return @"iPhone4";

   if ([platform isEqualToString:@"iPhone3,3"])   return @"VerizoniPhone 4";

    if ([platform isEqualToString:@"iPod1,1"])     return @"iPodTouch 1G";

    if ([platform isEqualToString:@"iPod2,1"])     return @"iPodTouch 2G";

    if ([platform isEqualToString:@"iPod3,1"])     return @"iPodTouch 3G";

    if ([platform isEqualToString:@"iPod4,1"])     return @"iPodTouch 4G";

    if ([platform isEqualToString:@"iPad1,1"])     return @"iPad";

    if ([platform isEqualToString:@"iPad2,1"])     return @"iPad2 (WiFi)";

    if ([platform isEqualToString:@"iPad2,2"])     return @"iPad2 (GSM)";

    if ([platform isEqualToString:@"iPad2,3"])     return @"iPad2 (CDMA)";

    if ([platform isEqualToString:@"i386"])       return @"Simulator";

    return @"";

}

發佈了13 篇原創文章 · 獲贊 12 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章