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