关于UI_USER_INTERFACE_IDIOM() & UIDevice.model
2012-12-30 23:30
513 查看
转载自:http://blog.sina.com.cn/s/blog_890a737301014fim.html
使用 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:@"iPod
touch"]) {
//iPod Touch
}
else {
//iPad
}
使用系统的一个函数sysctlbyname 来获取设备名称
- (NSString *) platformString
{
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:@"iPhone1,1"]) return @"iPhone
1G";
if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone
3G";
if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone
3GS";
if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone
4";
if ([platform isEqualToString:@"iPhone3,3"]) return @"Verizon
iPhone 4";
if ([platform isEqualToString:@"iPod1,1"]) return @"iPod
Touch 1G";
if ([platform isEqualToString:@"iPod2,1"]) return @"iPod
Touch 2G";
if ([platform isEqualToString:@"iPod3,1"]) return @"iPod
Touch 3G";
if ([platform isEqualToString:@"iPod4,1"]) return @"iPod
Touch 4G";
if ([platform isEqualToString:@"iPad1,1"]) return @"iPad";
if ([platform isEqualToString:@"iPad2,1"]) return @"iPad
2 (WiFi)";
if ([platform isEqualToString:@"iPad2,2"]) return @"iPad
2 (GSM)";
if ([platform isEqualToString:@"iPad2,3"]) return @"iPad
2 (CDMA)";
if ([platform isEqualToString:@"i386"])
return @"Simulator";
return @"";
}
使用 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:@"iPod
touch"]) {
//iPod Touch
}
else {
//iPad
}
使用系统的一个函数sysctlbyname 来获取设备名称
- (NSString *) platformString
{
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:@"iPhone1,1"]) return @"iPhone
1G";
if ([platform isEqualToString:@"iPhone1,2"]) return @"iPhone
3G";
if ([platform isEqualToString:@"iPhone2,1"]) return @"iPhone
3GS";
if ([platform isEqualToString:@"iPhone3,1"]) return @"iPhone
4";
if ([platform isEqualToString:@"iPhone3,3"]) return @"Verizon
iPhone 4";
if ([platform isEqualToString:@"iPod1,1"]) return @"iPod
Touch 1G";
if ([platform isEqualToString:@"iPod2,1"]) return @"iPod
Touch 2G";
if ([platform isEqualToString:@"iPod3,1"]) return @"iPod
Touch 3G";
if ([platform isEqualToString:@"iPod4,1"]) return @"iPod
Touch 4G";
if ([platform isEqualToString:@"iPad1,1"]) return @"iPad";
if ([platform isEqualToString:@"iPad2,1"]) return @"iPad
2 (WiFi)";
if ([platform isEqualToString:@"iPad2,2"]) return @"iPad
2 (GSM)";
if ([platform isEqualToString:@"iPad2,3"]) return @"iPad
2 (CDMA)";
if ([platform isEqualToString:@"i386"])
return @"Simulator";
return @"";
}
相关文章推荐
- 关于UI_USER_INTERFACE_IDIOM() & UIDevice.model
- 关于UI_USER_INTERFACE_IDIOM() & UIDevice.model
- 关于UI_USER_INTERFACE_IDIOM() & UIDevice.model
- UI_USER_INTERFACE_IDIOM() & UIDevice.model
- IOS - [UIDevice currentDevice] name/model/localizedMode/systemName/systemVersion...../userInterfaceIdiom
- 关于UI_USER_INTERFACE_IDIOM()&nbsp;&amp;&nbsp;…
- 调用[[UIDevice currentDevice] userInterfaceIdiom]==UIUserInterfaceIdiomPad判断设备
- 调用[[UIDevice currentDevice] userInterfaceIdiom]==UIUserInterfaceIdiomPad判断设备
- 关于UIInterfaceOritation 和 UIDeviceOritation
- UI_USER_INTERFACE_IDIOM()
- 关于<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-sc..
- UIDeviceOrientation 和 UIInterfaceOrientation
- 关于msf中的arp_sweep报错usbmon1:ERROR while getting interface flags:no such device
- Training—Best Practices for User Experience & UI Part 2
- 关于mysql异常: Access denied for user 'root'@'localhost' (using password: YES)的解决方法
- 设备旋转UIDeviceOrientation 和 UIInterfaceOrientation
- UIDeviceOrientation 设备方向 & UIInterfaceOrientation 控制器方向
- 调用[[UIDevice currentDevice] userInterfaceIdiom]==UIUserInterfaceIdiomPad判断设备
- 关于在使用spring出现类似java.sql.SQLException: Access denied for user 'XXX'@'localhost' (using password: YES)
- UIDeviceOrientation 和 UIInterfaceOrientation 设备旋转的方向