最近項目經理要求啟動圖換成動態(tài)。當時我想多簡單。可是實現(xiàn)過程中發(fā)現(xiàn)即使是一個簡單的啟動圖,也是大有學問的。
首先我們知道,蘋果是不允許將LaunchImage設置為動態(tài)圖的(gif之類的)。所以想達到動態(tài)的效果一般只有兩種方式:1.使用UIImageView的幀動畫

Snip20180711_25.png
第二種就是用UIWebView加載

Snip20180711_27.png
可是使用UIWebView加載會存在一個問題:一般使用動態(tài)啟動圖的時候,為了讓更自然的引渡,會將gif的第一幀圖作為靜態(tài)啟動圖使用。如果你這個gif圖的背景色是深色的話,會出現(xiàn)從加載第一幀圖到顯示gif的過程中有白色閃屏的情況。
我用slowAnimation動畫調試,代碼調試,換靜態(tài)啟動頁各種辦法后,都找不出那個白色究竟是什么視圖的顏色。它并不是UIWebView的背景色,也不是主Window的背景色。另外觀摩了數(shù)十個app后,我發(fā)現(xiàn)其實很少有動態(tài)啟動圖為gif的。大多數(shù)的動態(tài)啟動圖是通過幀動畫或者自定義的view動畫來實現(xiàn)的。如果gif的幀數(shù)過多,顯然幀動畫是不可取的。你想想,就算有30幀,你要導4套圖,那就是120張圖片.....
自定義的view動畫一般可以解決大部分問題。不過如果項目經理給的動態(tài)圖效果過于復雜的話是很難實現(xiàn)的。
最后補充一點UIWebView的坑:UI導圖一定要導物理像素.....因為UIWebView為了配合Web端,其顯示像素和普通的UIView是不一樣的。應該按照物理像素來導圖。