我知道中目標c,有知道用戶正在使用該裝置的方法。但我真的是一個新的iOS開發人員,我不知道Objective-C中那些複雜而複雜的命令。任何人都可以告訴我如何通過編碼來識別手機型號。識別編碼中的不同iOS設備?
另外,如果我可以知道用戶正在使用哪個設備,是可以改變的UILabel在不同的字體大小在不同iOS設備,如iPhone 3.5" 和iPhone 4.0" ?或者有什麼方法可以在不同的iOS設備中更改字體位置(自動佈局被禁用)?
我知道中目標c,有知道用戶正在使用該裝置的方法。但我真的是一個新的iOS開發人員,我不知道Objective-C中那些複雜而複雜的命令。任何人都可以告訴我如何通過編碼來識別手機型號。識別編碼中的不同iOS設備?
另外,如果我可以知道用戶正在使用哪個設備,是可以改變的UILabel在不同的字體大小在不同iOS設備,如iPhone 3.5" 和iPhone 4.0" ?或者有什麼方法可以在不同的iOS設備中更改字體位置(自動佈局被禁用)?
我確定哪些iOS設備我運行的方式對,所以我們可以根據大小的iDevices如iPad
和iPhone
就像改變佈局。
// 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 3
,3GS
,4
等。
如果您有任何疑問,請只是要求在評論,我會提高我的答案,包括。希望它有幫助,如果它在這裏是一個google search for determining iDevice
您可以使用下面的代碼來區分基於與屏幕尺寸的設備,並用它來改變的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 }
}
你可以找到很多關於如何區分iPhone 4和5,如[這一個](http://stackoverflow.com/questions/12446990/how-to -detect-iphone -5-寬屏的設備)。不知道你的「字體位置」的意思... –
我已經編輯我的問題,請你解封我的賬戶問題要問?謝謝! –