iOS-判斷使用者當前裝置型號(iPhone model)

來源:互聯網
上載者:User

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.