2010-07-02 56 views
2

因此,我目前使用UI_USER_INTERFACE_IDIOM與[[UIDevice currentDevice]模型]一起檢查我是否在iPhone,iPod或iPad上。我發現在iPad模擬器3.2中,UI_USER_INTERFACE_IDIOM仍然評估爲UIUserInterfaceIdiomPhone(iPhone)。UI_USER_INTERFACE_IDIOM是否與目標設備系列一起工作

我想知道這是否與我的目標設備系列設置有關。我只針對我的應用程序的iPhone(我不想使用縮放視圖製作通用應用程序)。不過,我支持3.2 SDK,因此我仍然希望擁有iPad的用戶能夠運行我的iPhone應用程序。 即使我瞄準iPhone,UI_USER_INTERFACE_IDIOM在iPad上也能正確評估嗎?

回答

2

UI_USER_INTERFACE_IDIOM 不是檢查設備是iPhone還是iPad。它檢查的是用戶界面是處於iPhone模式(1x/2倍物)還是iPad模式。

如果應用程序未配置爲定位iPad,則它將始終返回UIUserInterfaceIdiomPhone,因爲UI 的iPhone應用程序。這是一個設計特色。

即使將應用程序配置爲僅針對iPhone,只要您使用記錄的方法,iPad應該能夠無任何問題地運行它。

(如果你需要iPad專用功能,檢查設備是否真的是一個iPad。相反,檢查個體的能力。)

+0

我試圖以確定是否將電話號碼鏈接到基於設備的呼叫能力電話的行爲。有一種方法或宏我可以用來確定這一點? – unjust 2010-07-05 22:20:22

+0

@unjust:你可以弱連接到CoreTelephony(我假設你正在使用CT),然後檢查是否有一些類,例如'CTCall'使用NSClassFromString存在。 – kennytm 2010-07-06 06:08:00

+0

請問[[UIDevice currentDevice]型號]作爲iPad出現嗎?我試圖確保只有iPad可以自動旋轉。 – Felixs 2010-09-03 18:52:08

0

盡我所能提供的是,在iPad模擬器(3.2 ),而在 「iPhone」 模式運行

NSLog(@"model : %@", [UIDevice currentDevice].model); 

回報

model : iPhone Simulator 

(注意:我只爲「iPhone」建設,因此在iPad上運行iPhone體驗。我必須假設返回的「型號」名稱受此影響)

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; 
} 
相關問題