最近項(xiàng)目經(jīng)理要求啟動(dòng)圖換成動(dòng)態(tài)。當(dāng)時(shí)我想多簡(jiǎn)單幔亥。可是實(shí)現(xiàn)過(guò)程中發(fā)現(xiàn)即使是一個(gè)簡(jiǎn)單的啟動(dòng)圖察纯,也是大有學(xué)問(wèn)的帕棉。
首先我們知道,蘋(píng)果是不允許將LaunchImage設(shè)置為動(dòng)態(tài)圖的(gif之類(lèi)的)饼记。所以想達(dá)到動(dòng)態(tài)的效果一般只有兩種方式:1.使用UIImageView的幀動(dòng)畫(huà)
第二種就是用UIWebView加載
可是使用UIWebView加載會(huì)存在一個(gè)問(wèn)題:一般使用動(dòng)態(tài)啟動(dòng)圖的時(shí)候香伴,為了讓更自然的引渡,會(huì)將gif的第一幀圖作為靜態(tài)啟動(dòng)圖使用具则。如果你這個(gè)gif圖的背景色是深色的話即纲,會(huì)出現(xiàn)從加載第一幀圖到顯示gif的過(guò)程中有白色閃屏的情況。
我用slowAnimation動(dòng)畫(huà)調(diào)試博肋,代碼調(diào)試低斋,換靜態(tài)啟動(dòng)頁(yè)各種辦法后蜂厅,都找不出那個(gè)白色究竟是什么視圖的顏色。它并不是UIWebView的背景色拔稳,也不是主Window的背景色葛峻。另外觀摩了數(shù)十個(gè)app后,我發(fā)現(xiàn)其實(shí)很少有動(dòng)態(tài)啟動(dòng)圖為gif的巴比。大多數(shù)的動(dòng)態(tài)啟動(dòng)圖是通過(guò)幀動(dòng)畫(huà)或者自定義的view動(dòng)畫(huà)來(lái)實(shí)現(xiàn)的术奖。如果gif的幀數(shù)過(guò)多,顯然幀動(dòng)畫(huà)是不可取的轻绞。你想想采记,就算有30幀,你要導(dǎo)4套圖政勃,那就是120張圖片.....
自定義的view動(dòng)畫(huà)一般可以解決大部分問(wèn)題唧龄。不過(guò)如果項(xiàng)目經(jīng)理給的動(dòng)態(tài)圖效果過(guò)于復(fù)雜的話是很難實(shí)現(xiàn)的。
最后補(bǔ)充一點(diǎn)UIWebView的坑:UI導(dǎo)圖一定要導(dǎo)物理像素.....因?yàn)閁IWebView為了配合Web端,其顯示像素和普通的UIView是不一樣的奸远。應(yīng)該按照物理像素來(lái)導(dǎo)圖既棺。