現(xiàn)在好像一種方法不能全部適配ios7、ios8、ios9?
一、第一種(可以實現(xiàn))
(改項目b id 和版本)
? ? 一、將LaunchScreen.xib設(shè)置成? 默認值:(w:Any h:Any)或者 豎屏:(w:Compact h:Regular)
? 二、拖入一個UIImageView 到 LaunchScreen.xib 并設(shè)置上下左右的約束為0
? 三、在 Images.xcassets 里新建一個Image Set,輸入Image Set的名,然后設(shè)置Device Specific,選擇 iPhone ? ? ? ? ? ? ?和 Retina 4-inch
? ?四、在上述 Image Set 中拖入 iPhone4S,iPhone5/5s,iPhone6, iPhone6 Plus 對應(yīng)的啟動圖片
? ? 五、回到 LaunchScreen.xib,點擊UIImageView,查看屬性面板,在Image屬性中選擇 第三步 新建的 Image ? ? ? ? ? ? ?Set 即可
(改項目b id 和版本)
第二種、
Launch Screen在iOS7/8中的實現(xiàn)
目前項目中需要解決的問題是:
兼容iOS7和iOS8,之前的版本不需要支持了
實現(xiàn)兼容3.5、4、4.7和5.5寸屏幕,豎屏的Lauch Screen
創(chuàng)建所需的PNG圖片
有關(guān)iPhone6/6+相關(guān)尺寸見這里http://www.paintcodeapp.com/news/iphone-6-screens-demystified
需要如下尺寸圖片:
用于iPhone6+的1242x2208,或者1080x1920,也就是Retina HD 5.5
用于iPhone6的750x1334,也就是Retina HD 4.7
用于4寸屏(iPhone5/5s)的640x1136,就是Retina 4
用于3.5寸(iPhone4/4s)的640x960,就是2x
使用LaunchImage
使用LaunchImage,可以兼容iOS7和iOS8。
因為iOS8也會調(diào)用LaunchScreen.xib,所以我的做法是直接刪除它。就是這個文件:
然后,在Images.xcassets中創(chuàng)建一個LaunchImage
需要在項目屬性里,launch Images Source里設(shè)置為LaunchImage
測試了一下:
iPhone6+使用的是Retina HD 5.5
iPhone6使用的是Retina HD 4.7
iPhone5s使用的是Retina 4
iPhone4s使用的是2x
使用LauchScreen.xib
這是Xcode6/iOS8的新功能,也就是說,這個步驟,是為了支持iOS8的,而不支持iOS7。其實在目前的項目用不上,不過做了技術(shù)準(zhǔn)備,就寫下來吧。
看到這個方形的xib文件,怪怪的,這是為了支持橫屏和豎屏的,因為這個項目只需要豎屏,也可以這樣:
不改也沒關(guān)系。
在Images.xcassets里創(chuàng)建backgroundImage
給LaunchScreen.xib中加一個圖片,用剛剛創(chuàng)建的backgroundImage。
測試一下,iOS8下面的Launch Screen都沒有問題了:
iPhone6+用的是3x
iPhone5s用的是Retina 4 2x
iPhone6和iPhone4s都是用的2x
因此我沒有添加1x的圖片,基本沒用。
結(jié)論
目前比較好的方式是使用Launch Image的方式創(chuàng)建各種設(shè)備的圖片文件,兼容iOS7/8
使用LaunchScreen.xib,功能更強大,但是僅支持iOS8,可能再過幾年可以成為主流方法
源代碼見這里:GitHub,是使用LaunchImage的方式
第三種、
LaunchScreen.xib 在iOS8中優(yōu)先調(diào)用。所以如果兩個都設(shè)置了,LaunchImage只在iOS7中起作用。
如果不設(shè)置LaunchScreen.xib的話,LaunchImage在iOS7和8上都可以,但是,在App Store上展示app時不會有 ”已針對iPhone 6、iPhone 6 Plus 優(yōu)化“
第四種、
我按照網(wǎng)上說的那樣設(shè)置了還是顯示不出來,最后在info.plist文件中將Launch Screen interface file... 換成Launch image(iPhone) 值設(shè)置為我在Launch Image中的照片,這樣就可以顯示了。
項目用xcode6創(chuàng)建,升級為xcode7 后改動啟動頁的做法
xcode7 和xcode6兩者比較中間的內(nèi)容發(fā)生了變化。變化如下:
( 在Xcode7下創(chuàng)建的項目,由于某個原因,Xcode7添加啟動圖有點不一樣。)
Xcode7與Xcode6不一樣的地方在于:
Xcode6的LaunchScreen.xib改成了LaunchScreen.storyboard
如果你還是像以前那樣添加啟動圖,Xcode將會報出一個警告。如何解決?
解決辦法:
1.打開你的assets文件(素材庫),并點擊左下的+按鈕,添加LaunchImage。然后按要求,導(dǎo)入不同分辨率的圖片。如下圖:
由于我的項目只用到了豎屏的圖,圖中紅色框里面是我需要添加的圖片。從左到右,從上到下,一次為5.5',4.7',3.5'和4'。把這4個位置填上圖片即可
2.將Launch image Source 修改為使用asset,Xcode會自動指向到LaunchImage。然后,再把Launch Screen File設(shè)置為空即可。
這2步設(shè)置完,項目的啟動圖就成功的添加上了。
在xcode7/ios9添加啟動頁
在LaunchScreen.storyboard中設(shè)置啟動頁已經(jīng)不好用了 , 現(xiàn)在我們設(shè)置啟動頁要在Assets.xcassets這個文件中設(shè)置
進去默認會有一個AppIcon這個是設(shè)置app圖標(biāo)用的,我們這里要點擊鼠標(biāo)右鍵新建 ?App Icons & Launch Images -> New iOS Launch Image ?這個是設(shè)置啟動頁的選項
創(chuàng)建好之后 , 會有8種分辨率的圖片讓我們添加
點擊其中的一個, 點擊右上角那個尖的,在下面會顯示圖這張圖片需要的分辨率
Retina HD 5.5 ? 1242*2208
Retina HD 4.7 ?750*1334
Retina 4 640*1136
2* ?640*960
注意:所有圖片的分辨率一定要嚴(yán)格的按照這個分辨率制作 , 否則會導(dǎo)致view的大小顯示不正確
在LaunchScreen.storyboard中,將右邊選項的圈紅地方的勾去掉 ? (去掉自動布局)
點擊工程設(shè)置App Icons and Launch Images
點擊Use Asset Catelog , 會彈出一個對話框
什么都不用改 , 點擊右下角的 Migrate
設(shè)置為下面圖片的選項 ? Launch Images Source 設(shè)置為: LaunchImage , ? Launch Screen File中的內(nèi)容刪除
上面這些步驟都做完之后,在虛擬機中刪除項目,清空Xcode緩存(Command + Shift + K) , 重新運行項目.
注:設(shè)置圖片的分辨率一定要按規(guī)定的分辨率來 . 有的時候還會不好使 , 這個要把最后一步刪除項目 清空緩存操作一遍