iOS-判斷使用者當前裝置型號(iPhone model)
判斷方法: 我們在適配多個機型時,大多情況下都需要考慮到使用者裝置的型號,然後根據使用者裝置的width,height,解析度等來決定控制項或圖片的大小。那麼如何獲知使用者裝置的型號呢? 我個人是通過(下面這個方法) 1[[UIScreen mainScreen] bounds]; 來擷取主畫面的bounds,熟悉的朋友一看到bound或frame肯定就會想到CGRect 這個結構體(struct),而bounds當然也是這個結構體的一個變數 其中CGRect的成員中有一個CGSize(也是結構體),CGSize的成員包括width,height 所以當前我們就獲得主畫面的寬以及高了,然後對應下邊的資料就可知道使用者使用的具體機型了 如下:各系列機型豎屏時的 寬*高 portrait width * height iPhone4:320*480 iPhone5:320*568 iPhone6:375*667 iPhone6Plus:414*736 資料參考於 IOS裝置設計完整指南 一文 程式碼範例: 此處建立了一個UIDevice的category UIDevice+IPhoneModel.h 1 typedef NS_ENUM(char, iPhoneModel){//0~3 2 iPhone4,//320*480 3 iPhone5,//320*568 4 iPhone6,//375*667 5 iPhone6Plus,//414*736 6 UnKnown 7 }; 8 9 @interface UIDevice (IPhoneModel)10 11 /**12 * return current running iPhone model13 *14 * @return iPhone model15 */16 + (iPhoneModel)iPhonesModel;17 18 @end UIDevice+IPhoneModel.m 1 #import "UIDevice+IPhoneModel.h" 2 3 @implementation UIDevice (IPhoneModel) 4 5 /** 6 * return current running iPhone model 7 * 8 * @return iPhone model 9 */10 + (iPhoneModel)iPhonesModel {11 //bounds method gets the points not the pixels!!!12 CGRect rect = [[UIScreen mainScreen] bounds];13 14 CGFloat width = rect.size.width;15 CGFloat height = rect.size.height;16 17 //get current interface Orientation18 UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];19 //unknown20 if (UIInterfaceOrientationUnknown == orientation) {21 return UnKnown;22 }23 24 // portrait width * height25 // iPhone4:320*48026 // iPhone5:320*56827 // iPhone6:375*66728 // iPhone6Plus:414*73629 30 //portrait31 if (UIInterfaceOrientationPortrait == orientation) {32 if (width == 320.0f) {33 if (height == 480.0f) {34 return iPhone4;35 } else {36 return iPhone5;37 }38 } else if (width == 375.0f) {39 return iPhone6;40 } else if (width == 414.0f) {41 return iPhone6Plus;42 }43 } else if (UIInterfaceOrientationLandscapeLeft == orientation || UIInterfaceOrientationLandscapeRight == orientation) {//landscape44 if (height == 320.0) {45 if (width == 480.0f) {46 return iPhone4;47 } else {48 return iPhone5;49 }50 } else if (height == 375.0f) {51 return iPhone6;52 } else if (height == 414.0f) {53 return iPhone6Plus;54 }55 }56 57 return UnKnown;58 }59 60 @end