你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS-判斷用戶當前設備型號(iPhone model)

iOS-判斷用戶當前設備型號(iPhone model)

編輯:IOS開發綜合
判斷方法:   我們在適配多個機型時,大多情況下都需要考慮到用戶設備的型號,然後根據用戶設備的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 model 13  * 14  *  @return iPhone model 15  */ 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 Orientation 18     UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 19     //unknown 20     if (UIInterfaceOrientationUnknown == orientation) { 21         return UnKnown; 22     } 23      24     //    portrait   width * height 25     //    iPhone4:320*480 26     //    iPhone5:320*568 27     //    iPhone6:375*667 28     //    iPhone6Plus:414*736 29      30     //portrait 31     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) {//landscape 44         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
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved