iPhoneX 序列適配方案(小結(jié))
和往常一樣,蘋果發(fā)布新產(chǎn)品,我們作為開發(fā)者都需要對(duì)系統(tǒng)和UI布局進(jìn)行適配,今年也是一樣。從去年發(fā)布的 iphoneX開始,iPhone 手機(jī)加入了劉海設(shè)計(jì),而且針對(duì)于iphone的劉海,需要特殊的適配。今年新出的3款iphone都帶有劉海,自然也不例外。
在iphonex以前iphone的頂部導(dǎo)航欄高度都是統(tǒng)一的64,底部導(dǎo)航欄是統(tǒng)一的49;從iphonex的劉海屏開始,出了一個(gè)SafeArea的概念,帶劉海設(shè)計(jì)的iphone,頂部導(dǎo)航的高度由原來的64,變成了88,因?yàn)闋顟B(tài)欄的高度由原來的20變成了44;底部導(dǎo)航欄的高度由原來的49,變成了83。
所以對(duì)于iphonex序列的手機(jī)的適配,都需要針對(duì)頂部導(dǎo)航&底部導(dǎo)航進(jìn)行適配。只不過原來判斷iphonex的方法,已經(jīng)不能完全判斷新的iphonex新機(jī)型。要么繼續(xù)加if{}else{}進(jìn)行判斷,要么就是尋找新的方法,還好iphonex序列的機(jī)型的寬高比是有規(guī)律的。
從網(wǎng)上看到了別人的帖子列出了iphonex序列機(jī)型的寬高&比例:
//iphoneX 序列機(jī)型的屏幕高寬 //XSM SCREEN_HEIGHTL = 896.000000,SCREEN_WIDTHL = 414.000000 2.1642512077 //XS SCREEN_HEIGHTL = 812.000000,SCREEN_WIDTHL = 375.000000 2.1653333333 //XR SCREEN_HEIGHTL = 896.000000,SCREEN_WIDTHL = 414.000000 2.1642512077 //X SCREEN_HEIGHTL = 812.000000,SCREEN_WIDTHL = 375.000000 2.1653333333
iphonex序列iOS原生的適配
#define SCREEN_HEIGHTL [UIScreen mainScreen].bounds.size.height #define SCREEN_WIDTHL [UIScreen mainScreen].bounds.size.width #define KIsiPhoneX ((int)((SCREEN_HEIGHTL/SCREEN_WIDTHL)*100) == 216)?YES:NO //判斷是否為 iPhoneXS Max,iPhoneXS,iPhoneXR,iPhoneX
react-native針對(duì)于iphonex序列機(jī)型的適配
const {width, height} = Dimensions.get('window'); //iphoneX 序列機(jī)型的屏幕高寬 //XSM SCREEN_HEIGHTL = 896.000000,SCREEN_WIDTHL = 414.000000 2.1642512077 //XS SCREEN_HEIGHTL = 812.000000,SCREEN_WIDTHL = 375.000000 2.1653333333 //XR SCREEN_HEIGHTL = 896.000000,SCREEN_WIDTHL = 414.000000 2.1642512077 //X SCREEN_HEIGHTL = 812.000000,SCREEN_WIDTHL = 375.000000 2.1653333333 //目前iPhone X序列手機(jī)的適配算法:高寬比先轉(zhuǎn)換為字符串,截取前三位,轉(zhuǎn)換為number類型 再乘以100 export const isIphoneX = (Platform.OS === 'ios' && (Number(((height/width)+"").substr(0,4)) * 100) === 216);
總結(jié)
無論是iOS原生還是react-native,只要判斷出是iphonex序列機(jī)型,針對(duì)頂部導(dǎo)航欄和底部導(dǎo)航欄做特殊的處理即可。保證頂部導(dǎo)航和底部導(dǎo)航的UI正確顯示,能夠正確響應(yīng)事件。(如果適配不好,會(huì)出現(xiàn)UI顯示不正確和事件不能夠響應(yīng)的情況。)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
iOS中Swift UISearchController仿微信搜索框
這篇文章主要介紹了iOS中Swift UISearchController仿微信搜索框效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05iOS實(shí)現(xiàn)淘寶上拉進(jìn)入詳情頁交互效果
最近遇到一個(gè)項(xiàng)目,項(xiàng)目中某個(gè)新需求的交互要求仿照淘寶上拉從下往上彈出寶貝詳情。所以死打開淘寶APP仔細(xì)看了看,然后自己寫了寫,現(xiàn)在感覺效果差不多了,記錄一下分享給大家,方法自己和大家需要的時(shí)候查看借鑒,感興趣的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2016-11-11iOS中UIScrollView嵌套UITableView的實(shí)踐教程
在UIScrollView嵌套UITableView的問題相信大家都遇到過,小編最近在工作中就遇到了這個(gè)問題,所以這篇文章主要介紹了iOS中UIScrollView嵌套UITableView的相關(guān)資料,文中介紹的方法是通過自己的實(shí)踐所得來的,需要的朋友可以參考借鑒,下面來一起看看吧。2017-05-05iOS 簡(jiǎn)約日歷控件EBCalendarView的實(shí)現(xiàn)代碼
本篇文章主要介紹了iOS 簡(jiǎn)約日歷控件EBCalendarView的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05iOS TabBarItem設(shè)置紅點(diǎn)(未讀消息)
本文主要介紹了iOS利用TabBarItem設(shè)置紅點(diǎn)(未讀消息)的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-04-04iOS開發(fā)技巧之WeakSelf宏的進(jìn)化詳解
在程序中我們經(jīng)常用到Block,但寫weak self 時(shí)會(huì)比較繁瑣,下面這篇文章主要給大家介紹了關(guān)于iOS開發(fā)技巧之WeakSelf宏的進(jìn)化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們一起來看看吧2018-05-05iOS 自定義返回按鈕保留系統(tǒng)滑動(dòng)返回功能
這篇文章主要介紹了iOS 自定義返回按鈕,保留系統(tǒng)滑動(dòng)返回功能,實(shí)現(xiàn)方法非常簡(jiǎn)單,具有參考借鑒價(jià)值,需要的朋友參考下吧2017-01-01IOS 開發(fā)之PickerView文字和隨機(jī)數(shù)的使用
這篇文章主要介紹了IOS 開發(fā)之PickerView文字和隨機(jī)數(shù)的使用的相關(guān)資料,這里提供實(shí)例幫助大家理解掌握這部分內(nèi)容,需要的朋友可以參考下2017-08-08iOS開發(fā)之UITableView與UISearchController實(shí)現(xiàn)搜索及上拉加載,下拉刷新實(shí)例代碼
這篇文章主要介紹了iOS開發(fā)之UITableView與UISearchController實(shí)現(xiàn)搜索及上拉加載,下拉刷新實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-04-04