淺談iphone X的簡單適配問題(推薦)
上周Apple大大發(fā)布了新的設(shè)備,其中最引人注目的莫過于iphone X,對于這款設(shè)備官方有詳盡的解說官方文檔,除了最新的若干AR、人工智能等功能外,我們發(fā)現(xiàn)這也是一款全新尺寸的設(shè)備。
官方文檔指出這款設(shè)備的沒有home鍵,當然有若干手勢操作代替了home鍵的功能,同時該設(shè)備也是基本的全面屏設(shè)備。當然聽到了不少吐槽該設(shè)備的“前劉?!保俏艺J為相對于劉海上添加的功能,這個劉海也無傷大雅,畢竟相比美觀,對于我這種務(wù)實者來說更看重功能,閑話不多說,我們在蘋果發(fā)布設(shè)備的第一時間對我們的工程做了簡單的適配,今天有時間,在這里說一下適配過程和小問題。
我們看一下官方的尺寸說明,發(fā)現(xiàn)該設(shè)備可支持@3x的分辨率,再看官方的對于適配的說明:
Most apps that use standard, system-provided UI elements like navigation bars, tables, and collections automatically adapt to the device's new form factor. Background materials extend to the edges of the display and UI elements are appropriately inset and positioned.
大概意思是說一般的原有的UI、導(dǎo)航等視圖都可以自行適配,但是我們在第一時間用Xcode9測試了我們的項目,如圖:
并沒有充滿整個屏幕,簡單快速適配需要添加相應(yīng)的啟動圖
啟動圖的大小為375x812 @3x
添加之后
此時可以完美的充滿整個屏幕了但是還是有一些小問題,特別是在用純代碼的工程中特別愛用
#define SCREENWIDTH [UIScreen mainScreen].bounds.size.width #define SCREENHIGHT [UIScreen mainScreen].bounds.size.height
這兩個宏定義,來獲取屏幕的寬高,容易出問題的地方在底部視圖的情況,原來的所有機型狀態(tài)+導(dǎo)航都是64,這里突然變的更大了,原來計算位置的frame現(xiàn)在可能會不在原來的位置上了
由于狀態(tài)+導(dǎo)航我們有了兩個不同的尺寸,方便起見可以使用下邊的代碼動態(tài)獲取
CGRect rectStatus = [[UIApplication sharedApplication] statusBarFrame]; NSLog(@"status width - %f", rectStatus.size.width); // 寬度 NSLog(@"status height - %f", rectStatus.size.height); // 高度 // 導(dǎo)航欄(navigationbar) CGRect rectNav = self.navigationController.navigationBar.frame; NSLog(@"nav width - %f", rectNav.size.width); // 寬度 NSLog(@"nav height - %f", rectNav.size.height); // 高
這樣就可以精確地獲得frame,特別是以保證視圖在底部,再來一張適配好的帶導(dǎo)航的圖片
至此簡單適配完成!
適配iOS11與iPhoneX過程中遇到的問題
問題 1 app上下為黑色區(qū)域,不是全屏(iPhoneX)
你可能需要添加新的LaunchImage
編輯LaunchImage的Contents.json文件,在前面添加如下代碼
注意替換文件名
{ "extent" : "full-screen", "idiom" : "iphone", "subtype" : "2436h", "filename" : "iPhoneX.png", "minimum-system-version" : "11.0", "orientation" : "portrait", "scale" : "3x" }, { "extent" : "full-screen", "idiom" : "iphone", "subtype" : "2436h", "filename" : "iPhoneX.png", "minimum-system-version" : "11.0", "orientation" : "landscape", "scale" : "3x" },
問題2 tabbar或navigation Bar異常 (iPhoneX)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
IOS 開發(fā)之 NSMutableArray與NSArray 的區(qū)別
這篇文章主要介紹了IOS 開發(fā)之 NSMutableArray與NSArray 的區(qū)別的相關(guān)資料,希望通過本文能掌握這部分內(nèi)容,需要的朋友可以參考下2017-09-09IOS利用CocoaHttpServer搭建手機本地服務(wù)器
這篇文章主要介紹了IOS利用CocoaHttpServer搭建手機本地服務(wù)器的步驟,幫助大家更好的理解和學(xué)習使用ios開發(fā),感興趣的朋友可以了解下2021-04-04iOS開發(fā)之UIKeyboardTypeNumberPad數(shù)字鍵盤自定義按鍵
這篇文章主要介紹了iOS開發(fā)之UIKeyboardTypeNumberPad數(shù)字鍵盤自定義按鍵 的相關(guān)資料,需要的朋友可以參考下2016-08-08iOS Swift創(chuàng)建代理協(xié)議的多種方式示例
這篇文章主要給大家介紹了關(guān)于iOS Swift創(chuàng)建代理協(xié)議的多種方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧。2017-12-12iOS利用UIScrollView實現(xiàn)圖片的縮放實例代碼
本篇文章主要介紹了iOS利用UIScrollView實現(xiàn)圖片的縮放實例代碼,具有一定的參考價值,有興趣的可以了解一下2017-07-07