2013-06-25 53 views
-2

我知道中目標c,有知道用戶正在使用該裝置的方法。但我真的是一個新的iOS開發人員,我不知道Objective-C中那些複雜而複雜的命令。任何人都可以告訴我如何通過編碼來識別手機型號。識別編碼中的不同iOS設備?

另外,如果我可以知道用戶正在使用哪個設備,是可以改變的UILabel在不同的字體大小在不同iOS設備,如iPhone 3.5" 和iPhone 4.0" ?或者有什麼方法可以在不同的iOS設備中更改字體位置(自動佈局被禁用)?

+0

你可以找到很多關於如何區分iPhone 4和5,如[這一個](http://stackoverflow.com/questions/12446990/how-to -detect-iphone -5-寬屏的設備)。不知道你的「字體位置」的意思... –

+0

我已經編輯我的問題,請你解封我的賬戶問題要問?謝謝! –

回答

0

我確定哪些iOS設備我運行的方式對,所以我們可以根據大小的iDevices如iPadiPhone就像改變佈局。

// iPhone 5 (iPhone 4") 
    #define IS_PHONEPOD5() ([UIScreen mainScreen].bounds.size.height == 568.0f && [UIScreen mainScreen].scale == 2.f && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 

要獲得iPhone 5你也可以做

// iPhone 5 alternative 
    #define IS_PHONEPOD5() (fabs((double)[ [ UIScreen mainScreen ] bounds ].size.height - (double)568) < DBL_EPSILON) 

    // iPad 
    #define IS_IPAD() (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 

    // iPhone 4 (iPhone 3.5") 
    #define IS_IPHONE() (UI_USER_INTERFACE_IDIOM() == UIUserIntefaceIdiomPhone) 

我添加這些到我xxxx-Prefix.pch,這樣我可以用它在我的項目,而不需要做一個#import#include。我不是說這是最好的方式,但這種方式對我來說非常合適。

如果設置了這些變量,你可以就用if statements

if(IS_IPAD()) { 
     // Do something if iPad 
    } else if(IS_IPHONEPOD5()) { 
     // Do something if iPhone 5 or iPod 5 
    } else { 
    // Do something for everything else (This is what I do) but you could 
    // replace the 'else' with 'else if(IS_IPHONE())' 

    } 

有,雖然這樣做的其他方式。比如一個開發者編寫的擴展一些代碼,這可以發現https://github.com/erica/uidevice-extension/

[[UIDevice currentDevice] platformType] // ex: UIDevice4GiPhone 
    [[UIDevice currentDevice] platformString] // ex: @"iPhone 4G" 

這將允許您檢測的iDevice是否是iPhone 33GS4等。

如果您有任何疑問,請只是要求在評論,我會提高我的答案,包括。希望它有幫助,如果它在這裏是一個google search for determining iDevice

0

您可以使用下面的代碼來區分基於與屏幕尺寸的設備,並用它來改變的UILabel框,字體大小等...

#define IS_WIDESCREEN (fabs((double)[ [ UIScreen mainScreen ] bounds ].size.height - (double)568) < DBL_EPSILON) 
#define IS_IPHONE ([ [ [ UIDevice currentDevice ] model ] isEqualToString: @"iPhone" ]) 
#define IS_IPOD ([ [ [ UIDevice currentDevice ] model ] isEqualToString: @"iPod touch" ]) 
#define IS_IPHONE_5 (IS_IPHONE && IS_WIDESCREEN) 


- (void)iPhoneScreenCompatibility 
{ 
    if (IS_IPHONE_5) { 
//do something 
    } else { 
//do something } 
}