在開發(fā)過程中,我們有時(shí)候會(huì)遇到對線上的項(xiàng)目進(jìn)行更改icon的需求.
譬如,明天雙十一搶購,要做一個(gè)活動(dòng)圖標(biāo).后天什么節(jié)日的,要做一個(gè)節(jié)日圖標(biāo)來應(yīng)景一下.那么怎么去實(shí)現(xiàn)呢?
在蘋果官方文檔中有相應(yīng)的API方法去更換Icon.
- (void)setAlternateIconName:(NSString *)alternateIconName
completionHandler:(void (^)(NSError *error))completionHandler;
參數(shù):
completionHandler 為響應(yīng)的回調(diào)處理
要使用結(jié)果執(zhí)行的處理程序。在嘗試更改應(yīng)用程序的圖標(biāo)后涛浙,系統(tǒng)通過調(diào)用處理程序報(bào)告結(jié)果。(處理器是在uikit提供的隊(duì)列上執(zhí)行的檩电,不一定是在應(yīng)用程序的主隊(duì)列上众眨。)處理程序沒有返回值,并接受以下參數(shù):
error 處理返回的錯(cuò)誤信息.
到這里就已經(jīng)了解如何完成任務(wù),下面就讓我們跟著實(shí)踐一下.
首先導(dǎo)入所要更換的icon,
然后修改infoplist文件icon api,新建一個(gè)key為 Icon files (iOS 5)的字典類型item,輸入icon就可選擇.
這里的Primary Icon是設(shè)置app的主icon,可以在這里的Icon files數(shù)組內(nèi)添加搜吧,有多個(gè)的話,依次添加杨凑,也可以這里不用填寫滤奈,直接在Assets.xcassets 里配置
在 Icon files(iOS 5)內(nèi)添加一個(gè)Key: CFBundleAlternateIcons ,類型為字典撩满,
到這里配置部分就完成了,
代碼實(shí)現(xiàn)就更簡單了
然后就完成了.
這里有一個(gè)小小的問題:就是在修改icon的時(shí)候會(huì)出來一個(gè)系統(tǒng)彈框.
如果不想用戶操作的話,可以利用runtime動(dòng)態(tài)替換方法去修改.
到這里就完美的完成的.
附上本文icon修改demo,歡迎各位大大指點(diǎn)與批評.