每次蘋果發(fā)布了新機(jī)器后,都會(huì)引得大家的矚目,除了官方介紹的知識(shí)外,今天武林技術(shù)頻道小編淺談iphone X的簡單適配問題,一起來了解一下吧!
官方文檔指出這款設(shè)備的沒有home鍵,當(dāng)然有若干手勢操作代替了home鍵的功能,同時(shí)該設(shè)備也是基本的全面屏設(shè)備。當(dāng)然聽到了不少吐槽該設(shè)備的“前劉海”,但是我認(rèn)為相對(duì)于劉海上添加的功能,這個(gè)劉海也無傷大雅,畢竟相比美觀,對(duì)于我這種務(wù)實(shí)者來說更看重功能,閑話不多說,我們?cè)谔O果發(fā)布設(shè)備的第一時(shí)間對(duì)我們的工程做了簡單的適配,今天有時(shí)間,在這里說一下適配過程和小問題。

我們看一下官方的尺寸說明,發(fā)現(xiàn)該設(shè)備可支持@3x的分辨率,再看官方的對(duì)于適配的說明:
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)航等視圖都可以自行適配,但是我們?cè)诘谝粫r(shí)間用Xcode9測試了我們的項(xiàng)目,如圖:

并沒有充滿整個(gè)屏幕,簡單快速適配需要添加相應(yīng)的啟動(dòng)圖

啟動(dòng)圖的大小為375x812 @3x
添加之后

此時(shí)可以完美的充滿整個(gè)屏幕了但是還是有一些小問題,特別是在用純代碼的工程中特別愛用
#define SCREENWIDTH [UIScreen mainScreen].bounds.size.width#define SCREENHIGHT [UIScreen mainScreen].bounds.size.height
這兩個(gè)宏定義,來獲取屏幕的寬高,容易出問題的地方在底部視圖的情況,原來的所有機(jī)型狀態(tài)+導(dǎo)航都是64,這里突然變的更大了,原來計(jì)算位置的frame現(xiàn)在可能會(huì)不在原來的位置上了
由于狀態(tài)+導(dǎo)航我們有了兩個(gè)不同的尺寸,方便起見可以使用下邊的代碼動(dòng)態(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)
以上就是武林技術(shù)頻道小編帶給大家的淺談iphone X的簡單適配問題,大家可以盡早著手準(zhǔn)備啦,希望能幫到大家。
新聞熱點(diǎn)
疑難解答
圖片精選