iOS怎么獲取屏幕尺寸?

使用[UIScreen mainScreen].bounds就夠了嗎

獲取屏幕的寬高,覺得就這么一行簡單的代碼[UIScreen mainScreen].bounds,就可以讀取出屏幕的寬高(點(diǎn))。這有問題嗎?沒有問題呀,但是為啥我獲取到的值,跟實(shí)際的屏幕尺寸不匹配呢?在項(xiàng)目中,開始是6Plus的尺寸一直獲取不正確,后面又發(fā)現(xiàn)iPhone XR和iPhone X MAX的尺寸也不正確。

下圖是所有iPhone設(shè)備的屏幕尺寸列表:

iPhone所有屏幕尺寸和分辨率

到處查找原因,發(fā)現(xiàn)光會使用這句代碼還不夠,這句代碼獲取到的值還會受下面兩種情況的影響。

  • 6Plus上開啟了“顯示放大”模式;
  • 啟動圖中沒有正確加入該類型的啟動圖。比如:iPhone xr的設(shè)備,沒有配置啟動圖,就獲取不到正確的屏幕尺寸。

但是為什么啟動圖沒加,這個問題沒有被發(fā)現(xiàn)呢。首先我是知道啟動圖不添加,不會正確初始化屏幕的尺寸這個問題,我在查找問題的時候也去看了LaunchImage里的啟動圖,可是為什么沒發(fā)現(xiàn)xr和x max的啟動沒有添加呢,巨坑來了:

Xcode9升級到xcode10時, LaunchImage 上iOS8 and later被默認(rèn)去掉打鉤了,所以咋一看LaunchImage里所有空位的地方都放了啟動圖了。

這個問題就變?yōu)榱薸Phone XR和X Max的適配不徹底導(dǎo)致,這里具體怎么適配,可以參考這邊文章:
適配iPhone XR/iPhone XS Max

因此正確獲取iPhone XR和X Max的解決方案是:

  • 打開launchImage里的ios8.0 and later
  • 添加iPhone XS Max 和iPhone XR的啟動圖

不過由于現(xiàn)在Xcode10.1了也還沒有解決,Xcode10打的包上線后在iOS9.3的設(shè)備上,出現(xiàn)大面積隨機(jī)的crash的問題。要么解決打包的問題,要么像我們選擇暫時還是用Xcode9打包上線。所以目前等待蘋果趕緊修復(fù)這個問題。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 快速適配先說結(jié)論,找設(shè)計(jì)師要2張啟動圖:iPhone XR:828px x 1792pxiPhone XS Max...
    ShineYangGod閱讀 1,156評論 0 0
  • 上周,蘋果發(fā)布了三款新的 iPhone 設(shè)備,它們的屏幕數(shù)據(jù)分別如下: iPhone XS: 5.8 英寸,375...
    wu大維閱讀 8,237評論 0 10
  • 快速適配先說結(jié)論,找設(shè)計(jì)師要2張啟動圖: iPhone XR:828px x 1792px iPhone XS M...
    夭Y夭閱讀 726評論 0 1
  • 原文Xcode10和iOS12適配Xcode10和iOS12適配(持續(xù)更新)適配iPhoneX全系詳解,更新Xco...
    00after閱讀 2,916評論 0 6
  • 小滿之后,雨水漸漸的多了起來。一月很喜歡這樣的天氣——放學(xué)的時候,就能穿著雨靴打著雨傘,一步一個水坑,...
    lenna醬閱讀 655評論 0 1

友情鏈接更多精彩內(nèi)容