国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS如何獲取屏幕寬高、設備型號、系統版本信息

2019-10-21 18:50:19
字體:
來源:轉載
供稿:網友

介紹
在我學習Android開發的時候,覺得設備適配是件很頭疼的事情,android的設備太多了,那時就很羨慕iOS開發的人不用操心適配的問題,而當我開始學習iOS開發后,iOS的屏幕也開始多種多樣了起來...于是也得做適配了,sad...
之前也研究過,這里把我的方法記錄下來,本文介紹三個常用的設備信息獲取方式:

  • 獲取屏幕的寬高。用于在設置控件位置的時候計算相對屏幕的距離
  • 獲取設備的型號。5s和6+的屏幕大小相差很遠,相應的控件位置、大小都需要做出調整,不然就會出現在6+上顯得很空曠或者在5s上顯示不全的問題。
  • 獲取系統版本。不同的系統版本有著不同的特性,舉個栗子,iOS 9以下的版本就沒有Live Photo;再舉個栗子,iOS 7以上的系統版本往往需要調整一下邊界

接下來詳細說說各自的獲取方法,其實都還比較簡單。

1、獲取屏幕的寬高

屏幕的寬高是一個常常需要用到的信息,尤其是當你用代碼寫UI時。比如當你寫一個UILabel,設置其frame時,你想要它居中,而你想為其設置的寬度為200,那怎么設置它的x值呢?就是(屏幕的寬度 - 200)/ 2了對吧,這樣就可以保證不管在什么設備上它永遠是居中的。獲取屏幕寬、高的方法如下:

// 設備寬度  [UIScreen mainScreen].bounds.size.width  // 設備高度 [UIScreen mainScreen].bounds.size.height 

一般來說我們在pch文件里將其設置為宏,這樣在每個地方就都可以調用了,就不用每次都用這么長一串代碼:

//設備的寬高 #define SCREENWIDTH    [UIScreen mainScreen].bounds.size.width #define SCREENHEIGHT   [UIScreen mainScreen].bounds.size.height 

這樣在需要用的地方直接使用宏SCREENWIDTH和SCREENHEIGHT就可以了。

2、獲取設備的型號

獲取設備型號有幾種方法,這里我使用的是比較笨的方法,獲取設備的分辨率來判斷設備的型號。我們先看下面這張表:

iOS獲取屏幕寬高,iOS獲取設備型號,iOS獲取系統版本信息

關注設備分辨率那一列,我們可以看到幾款屏幕的設備的分辨率是不同的,因此也就可以以此為依據判斷設備型號,我這里判斷了幾種當前最常見的型號,同樣使用了宏:

// 根據屏幕分辨率判斷設備,是則返回YES,不是返回NO #define isiPhone5or5sor5c ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO) #define isiPhone6or6s ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(750, 1334), [[UIScreen mainScreen] currentMode].size) : NO) #define isiPhone6plusor6splus ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1242, 2208), [[UIScreen mainScreen] currentMode].size) : NO) 

那么我只需要判斷這幾個值哪一個是YES,就可以知道當前是哪個型號了,如:

if (isiPhone5or5sor5c) {   NSLog(@"這是 iPhone5 或 5s 或 5c") ; } else if (isiPhone6or6s) {   NSLog(@"這是 iPhone6 或 6s"); } else if (isiPhone6plusor6splus) {   NSLog(@"這是 iPhone6plus 或6splus"); } 

這樣就可以啦。
其實相應的iPad、iTouch等也都可以這么判斷,只要找到對應的分辨率來判斷就好。

3、獲取系統版本

獲取系統版本同樣適用宏來方便全局調用:

// 設備的系統版本 #define SystemVersion ([[UIDevice currentDevice] systemVersion]) 

這樣你就可以獲取版本號了,可以打印出來:
NSLog(@"當前運行系統為:iOS%@", SystemVersion); 

在使用的時候,可以轉化為float型的數來進行判斷,如:

if ([SystemVersion floatValue] >= 7.0) {   …… } 

常用的獲取設備信息的方法就在這里啦,希望能幫到大家~
這里是我在github的示例工程地址:https://github.com/Cloudox/GetDeviceInfoDemo,歡迎star和fork~

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安庆市| 五常市| 莫力| 贡觉县| 彭泽县| 郸城县| 天镇县| 白水县| 平遥县| 林甸县| 永宁县| 达日县| 会宁县| 彝良县| 屯留县| 剑河县| 五河县| 桃园市| 九台市| 临潭县| 德安县| 武隆县| 喀喇| 岢岚县| 台南县| 正定县| 舒兰市| 鞍山市| 广昌县| 弋阳县| 锡林郭勒盟| 江达县| 宜宾市| 峡江县| 乌苏市| 桃源县| 大埔区| 鄯善县| 鄯善县| 镇雄县| 崇州市|