所以我目前正在使用UI_USER_INTERFACE_IDIOM和[[UIDevice currentDevice]模型]来检查我是否在iPhone,iPod或iPad上。我发现在iPad模拟器3.2中,UI_USER_INTERFACE_IDIOM仍然评估为UIUserInterfaceIdiomPhone(iPhone)。
我想知道这是否与我的目标设备系列设置有关。我只针对我的应用程序定位iPhone(我不想制作具有缩放视图的通用应用程序)。但是,我支持3.2 SDK,所以我仍然希望拥有iPad的用户能够运行我的iPhone应用程序。 即使我定位到iPhone,UI_USER_INTERFACE_IDIOM也会在iPad上正确评估吗?
答案 0 :(得分:2)
UI_USER_INTERFACE_IDIOM 不检查设备是iPhone还是iPad。它检查的是用户界面是否处于iPhone模式(1x / 2x物品)或iPad模式。
如果某个应用未配置为定位iPad,它将始终返回UIUserInterfaceIdiomPhone,因为UI 是一个iPhone应用。这是一个设计特色。
即使应用程序配置为仅定位到iPhone,只要您使用所记录的方法,iPad就应该能够毫无问题地运行它。
(如果你需要特定于iPad的功能,不检查设备是否真的是iPad。而是检查个人能力。)
答案 1 :(得分:0)
我能提供的最佳功能是iPad模拟器(3.2)在“iPhone”模式下运行
NSLog(@"model : %@", [UIDevice currentDevice].model);
返回
model : iPhone Simulator
(作为备注:我只为“iPhone”构建,因此可以在iPad上运行iPhone体验。我必须假设返回的“模型”名称会受到影响)
答案 2 :(得分:0)
正如人们所说,检查个人能力。
要拨打电话,请执行此操作
// Only show the button if its is a device capable of making calls
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:"]]) {
self.Button.hidden = NO;
} else {
self.Button.hidden = YES;
}