UI_USER_INTERFACE_IDIOM是否适用于目标设备系列

时间:2010-07-02 17:10:02

标签: iphone ipad ios-simulator

所以我目前正在使用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上正确评估吗?

3 个答案:

答案 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;
}