背景
蘋果在2019年WWDC中提出,到2020年4月開始樱衷,使用 iOS 13 SDK 的 App 必須使用 LaunchScreen创译,相應(yīng)的LuanchImage 也要退出歷史的舞臺。但是現(xiàn)在蘋果手機尺寸也越來越豐富了片拍,很難找到一種適配各種尺寸啟動圖的方式煌集。下面我就根據(jù)網(wǎng)上的例子與自己研究給出幾種方案。
方案一:圖片直接拉伸
1捌省、直接在 LaunchScreen.storyboard 中添加 UIImageView苫纤,autolayout 設(shè)置邊距都為0。
2纲缓、 設(shè)置圖片的的 Content Mode 為 Aspect Fill卷拘。
3、然后直接添加默認尺寸的圖片就可以了祝高。
這種做法簡單粗暴栗弟,直接對圖片進行拉伸適配了,對于啟動圖來說如果四邊空白位置比較多也是沒有問題工闺≌Ш眨或者根據(jù)自己的圖片通過設(shè)置 stretching 設(shè)置各個方向的拉伸的位置大小,具體方式大家自行研究了陆蟆。
方案二:autolayout 排版內(nèi)容
這種方式就不要在把啟動頁面看成是一張圖片了雷厂,直接把它當(dāng)成一個頁面,放進我們需要顯示的控件叠殷,使用 autolayout 正常布局適配改鲫。
這是個人最為推薦的一種方式,能夠更加靈活的適配各尺寸。
方案三:還是使用多圖片適配
這種方式本質(zhì)上跟使用 LaunchImage 好像沒什么區(qū)別像棘,但是我們在嫌麻煩的或者不得不使用多啟動圖的時候稽亏,這也不失為一種解決方式。
添加圖片
1缕题、在 Assets.xcassets 中 New Image Set
2截歉、把所有尺寸圖片添加進圖片文件夾下
3、進入圖片文件夾中避除,編輯 Contents.json怎披,把里面的內(nèi)容改成如下內(nèi)容:
{"images": [? ? {"idiom":"iphone","scale":"1x"},? ? {"idiom":"iphone","filename":"640x960.png","scale":"2x"},? ? {"idiom":"iphone","scale":"3x"},? ? {"idiom":"iphone","subtype":"retina4","scale":"1x"},? ? {"idiom":"iphone","filename":"640x1136.png","subtype":"retina4","scale":"2x"},? ? {"idiom":"iphone","subtype":"retina4","scale":"3x"},? ? {"idiom":"iphone","filename":"1242x2208.png","subtype":"736h","scale":"3x"},? ? {"idiom":"iphone","filename":"750x1334.png","subtype":"667h","scale":"2x"},? ? {"idiom":"iphone","filename":"1125x2436.png","subtype":"2436h","scale":"3x"},? ? {"idiom":"iphone","filename":"1242x2688.png","subtype":"2688h","scale":"3x"},? ? {"idiom":"iphone","filename":"828x1792.png","subtype":"1792h","scale":"2x"}? ],"info": {"version": 1,"author":"xcode"}}
保存之后變成如下所示:
設(shè)置啟動圖
1、在 LaunchScreen.storyboard 中直接添加 UIImageView瓶摆,autolayout 設(shè)置填滿整個屏幕凉逛。
2、圖片資源直接引用剛才添加的圖片
3群井、設(shè)置后你會發(fā)現(xiàn)上面顯示的是3.5寸的圖片状飞,這不用理會它,直接運行起來书斜,你會發(fā)現(xiàn)能夠不同尺寸加載不同啟動圖诬辈。
以上這個方式是參考了NinJaLife同學(xué)的這篇文章。
這方式需要注意一個問題:如果你的項目有多個 target 需要配置多套啟動圖,就需要建立多個 LaunchScreen.storyboard,并注意導(dǎo)入的多套啟動圖名稱不能相同额港,會導(dǎo)致各個 target 的啟動圖都加載不出來。
最后
以上就是我總結(jié)的幾種可行的方式穿撮,用哪種方式就仁者見仁智者見智了,如果大家還有什么更好的方案痪欲,歡迎一起討論悦穿。
https://juejin.im/post/5e1463d4f265da5d716e572d